Perl中system、exec、readpipe的使用区别
在Perl脚本中,允许调用系统的命令来进行操作。
这就是Perl灵活性的体现,作为一种系统命令的粘合语言,能给程序员带来许多的便利。这样,你就可以最大限度地利用别人的成果,用不着自己使劲造轮子了。
                                                                                                                                                                                       
在Perl中,可以用system、exec、readpipe这三个命令来调用其他脚本、系统命令等。这三个命令的主要区别就是返回值。                                                                             
                                                                                                                                                                                         
1) 对于system这个函数来说,它会返回执行后的状态,比如说                                                                                                                                 
                                                                                                                                                                                         
@args = (“command”, “arg1″, “arg2″);                                                                                                                                               
system(@args) == 0                                                                                                                                                                       
or die “system @args failed: $?”                                                                                                                                                       
                                                                                                                                                                                         
当然,你也可以用类似于下面的语句来检查出错的原因:                                                                                                                                       
                                                                                                                                                                                         
if ($? == -1) {                                                                                                                                                                         
print “failed to execute: $!\n”;                                                                                                                                                       
}                                                                                                                                                                                       
elsif ($? & 127) {                                                                                                                                                                       
printf “child died with signal %d, %s coredump\n”,                                                                                                                                     
($? & 127),  ($? & 128) ? ‘with’ : ‘without’;                                                                                                                                       
}                                                                                                                                                                                       
else {                                                                                                                                                                                   
printf “child exited with value %d\n”, $? >> 8;                                                                                                                                       
}                                                                                                                                                                                       
                                                                                                                                                                                         
2) 而对于exec这个函数来说,仅仅是执行一个系统的命令,一般情况下并没有返回值。exec只有在系统没有你要执行的命令的情况下,才会返回false值。                                                 
                                                                                                                                                                                         
>exited

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。