在perl中调用system(“cmd”)函数和使用反引号` cmd`均是调用系统命令,但两者使用上是有些细微差别。
调用system函数返回的是该函数执行返回值,比如0表示执行正确,-1执行错误;同时会将cmd命令的结果打印到控制台界面;
而反引号` `直接返回的就是该cmd的执行结果,但是不会屏幕上表现出来。具体代码如下:
print "******call system() function
";
#向屏幕打印结果 函数返回值是0
my $result = system("dir");
print "result:$result
";
print "******call `` function
";
#$dir_context报存的是dir命令的执行结果,不会向屏幕打印结果
my $dir_context = `dir`;
#检查当前目录下后缀为.pl的文件数目
my $file_num = 0;
while ($dir_context =~ /(.*?).pl/gs){
$file_num++;
}
print "perl file num: $file_num
";
执行结果:
也可以直接在控制台上执行对应的perl语句,可以看到明显的执行结果差异,截图如下: