首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

perl中subroutine和system()的区别解决办法

2012-03-05 
perl中subroutine和system()的区别最近做一个项目,刚开始学习perl因为是两个人一起做,分别写部分PERL程序,

perl中subroutine和system()的区别
最近做一个项目,刚开始学习perl
因为是两个人一起做,分别写部分PERL程序,最后拼成一个完整的程序
因为看到有SYSTEM命令可以调用不同的脚本
想知道调用SUBROUTINE和用SYSTEM()执行脚本,在内核里有啥区别

[解决办法]
aaaa
[解决办法]
我要得分
[解决办法]
关注一下~
[解决办法]
subroutine和system是两个概念。

subrouteine是perl支持的定义并调用函数的方法。就像在C语言中定义了一个函数,再由main函数调用这个函数。定义函数的方法如下:
sub 函数名
{
函数体
}

使用函数的方法如下:
函数名(参数列表), 函数体的实现决定了参数列表中参数的意义及如何处理这些参数。

system是perl中调用系统中存在的其他任何程序的方法。其使用方法如下:
system(参数列表),参数列表中第一个元素为要调用的程序名,其余为其参数。system启动指定的程序运行程序并等待其结束,程序结束时带回其返回值。


注:在任一本讲perl的教材中都有更详细的阐述,楼主可以看一下小骆驼书。
[解决办法]
看不懂问题。
[解决办法]
subroutine 和 system 完全不相同啊
exec 和 system 的异同还有点讨论的价值……

subroutine 是调用一个函数,再单纯不过了
system 就是调用操作系统的程序了,不过貌似也不会启动新的进程
[解决办法]
所谓 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 的后续程序

这等于说,本来触手可及的一点小事情,你非得绕很大圈子找另一个人做,很不合理啊

热点排行