perl中system函数和反引号` `使用区别

在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语句,可以看到明显的执行结果差异,截图如下:

这里写图片描述

原文地址:https://www.cnblogs.com/jinxiang1224/p/8468194.html