社区
脚本语言
帖子详情
perl中subroutine和system()的区别
Dromflicka
2010-02-01 04:46:06
最近做一个项目,刚开始学习perl
因为是两个人一起做,分别写部分PERL程序,最后拼成一个完整的程序
因为看到有SYSTEM命令可以调用不同的脚本
想知道调用SUBROUTINE和用SYSTEM()执行脚本,在内核里有啥区别
...全文
502
11
打赏
收藏
perl中subroutine和system()的区别
最近做一个项目,刚开始学习perl 因为是两个人一起做,分别写部分PERL程序,最后拼成一个完整的程序 因为看到有SYSTEM命令可以调用不同的脚本 想知道调用SUBROUTINE和用SYSTEM()执行脚本,在内核里有啥区别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Dromflicka
2010-02-05
打赏
举报
回复
[Quote=引用 10 楼 mhoudg 的回复:]
所谓 sub,系统执行你的程序:
读取你的第一个脚本A.pl,发现A.pl调用了B.pm,然后就去@INC里寻找有没有 B.pm 这个东西,找到了,就执行,然后把结果传给 A.pl 的后续程序
如果是 system,系统执行你的程序:
读取你的第一个脚本A.pl,发现A.pl调用了 system B,然后就去 $PATH 里寻找你的脚本(如果是 perl 脚本,还得启动 perl),然后努力截获的 B 脚本结果,交给 A.pl 的后续程序
这等于说,本来触手可及的一点小事情,你非得绕很大圈子找另一个人做,很不合理啊
[/Quote]
原来是这样!因为不是我一个人写同一个东西!和我一起写的同学不太会软件的东西!他给我的都是PL的文件!我在考虑是否需要把他给我的PL换成PM!
谢谢你给的解释!
mhoudg
2010-02-05
打赏
举报
回复
所谓 sub,系统执行你的程序:
读取你的第一个脚本A.pl,发现A.pl调用了B.pm,然后就去@INC里寻找有没有 B.pm 这个东西,找到了,就执行,然后把结果传给 A.pl 的后续程序
如果是 system,系统执行你的程序:
读取你的第一个脚本A.pl,发现A.pl调用了 system B,然后就去 $PATH 里寻找你的脚本(如果是 perl 脚本,还得启动 perl),然后努力截获的 B 脚本结果,交给 A.pl 的后续程序
这等于说,本来触手可及的一点小事情,你非得绕很大圈子找另一个人做,很不合理啊
Dromflicka
2010-02-04
打赏
举报
回复
[Quote=引用 8 楼 mhoudg 的回复:]
subroutine 和 system 完全不相同啊
exec 和 system 的异同还有点讨论的价值……
subroutine 是调用一个函数,再单纯不过了
system 就是调用操作系统的程序了,不过貌似也不会启动新的进程
[/Quote]
实现一个功能,写成函数(用模块写在不同的文件内)和写成脚本用SYSTEM有啥区别啊?
mhoudg
2010-02-04
打赏
举报
回复
subroutine 和 system 完全不相同啊
exec 和 system 的异同还有点讨论的价值……
subroutine 是调用一个函数,再单纯不过了
system 就是调用操作系统的程序了,不过貌似也不会启动新的进程
Aylazhang
2010-02-04
打赏
举报
回复
看不懂问题。
Dromflicka
2010-02-04
打赏
举报
回复
[Quote=引用 5 楼 xteeqq 的回复:]
subroutine和system是两个概念。
subrouteine是perl支持的定义并调用函数的方法。就像在C语言中定义了一个函数,再由main函数调用这个函数。定义函数的方法如下:
sub 函数名
{
函数体
}
使用函数的方法如下:
函数名(参数列表), 函数体的实现决定了参数列表中参数的意义及如何处理这些参数。
system是perl中调用系统中存在的其他任何程序的方法。其使用方法如下:
system(参数列表),参数列表中第一个元素为要调用的程序名,其余为其参数。system启动指定的程序运行程序并等待其结束,程序结束时带回其返回值。
注:在任一本讲perl的教材中都有更详细的阐述,楼主可以看一下小骆驼书。
[/Quote]
我能理解SYSTEM调用PERL程序可以等效于写PERL的确涵数吗?概念并没有解释使用上的不同啊!
xteeqq
2010-02-04
打赏
举报
回复
subroutine和system是两个概念。
subrouteine是perl支持的定义并调用函数的方法。就像在C语言中定义了一个函数,再由main函数调用这个函数。定义函数的方法如下:
sub 函数名
{
函数体
}
使用函数的方法如下:
函数名(参数列表), 函数体的实现决定了参数列表中参数的意义及如何处理这些参数。
system是perl中调用系统中存在的其他任何程序的方法。其使用方法如下:
system(参数列表),参数列表中第一个元素为要调用的程序名,其余为其参数。system启动指定的程序运行程序并等待其结束,程序结束时带回其返回值。
注:在任一本讲perl的教材中都有更详细的阐述,楼主可以看一下小骆驼书。
Dromflicka
2010-02-03
打赏
举报
回复
为啥没人答我的问题啊?难道用PERL的人很少呀?
yangds123
2010-02-03
打赏
举报
回复
关注一下~
z8861842
2010-02-01
打赏
举报
回复
我要得分
z8861842
2010-02-01
打赏
举报
回复
aaaa
perl
中
文手册 CHM
8. **
Perl
函数库**:手册
中
会有详细的函数参考,包括内置函数和一些常用模块的函数,方便查阅和使用。 9. **调试技巧**:学习如何使用
perl
-d启动调试器,以及如何设置断点、单步执行、查看变量状态等调试方法。 ...
perl
中
文参考手册
Perl
的模块系统是其强大功能的一部分,手册会介绍如何使用CPAN(Comprehensive
Perl
Archive Network)来查找和安装模块,以及如何在程序
中
导入和使用模块。例如,DBI模块用于数据库接口,LWP模块用于网络请求,XML:...
perl
语言编程
perl
入门
5. **外部接口**:
Perl
可以调用外部程序和库,如系统命令(system)、进程间通信(IPC)和模块(通过`use`关键字导入)。 学习
Perl
语言,理解这些基本概念和操作是至关重要的。随着实践的深入,你将发现
Perl
的灵活...
Intermediate
Perl
.pdf
substantially from a "cool" scripting language used primarily by Unix system administrators to a robust object-oriented programming (OOP) language that runs on practically every computing platform ...
Perl
24小时自学通
8. **子程序(
Subroutine
)**:
Perl
中
的函数或方法,用于封装重复的代码逻辑。 9. **模块(Module)**:
Perl
的模块机制允许你导入和使用其他开发者编写的代码库,如CPAN(Comprehensive
Perl
Archive Network)提供...
脚本语言
37,744
社区成员
34,212
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章