perl中subroutine和system()的区别解决办法
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 的后续程序
这等于说,本来触手可及的一点小事情,你非得绕很大圈子找另一个人做,很不合理啊
最近做一个项目,刚开始学习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 的后续程序
这等于说,本来触手可及的一点小事情,你非得绕很大圈子找另一个人做,很不合理啊