例如,如果我的腳本是以下幾點:我的Perl腳本運行一個系統命令,我希望將輸出作爲腳本其餘部分的字符串,這怎麼實現?
#! /bin/perl
use strict;
use warnings;
system('echo schwifty')
我 - 如何能得到我的輸出端子(schwifty)上到一個字符串,我可以繼續我的腳本中使用?
注意:「回聲」只是作爲一個例子,我正在使用其他命令打印到屏幕。
例如,如果我的腳本是以下幾點:我的Perl腳本運行一個系統命令,我希望將輸出作爲腳本其餘部分的字符串,這怎麼實現?
#! /bin/perl
use strict;
use warnings;
system('echo schwifty')
我 - 如何能得到我的輸出端子(schwifty)上到一個字符串,我可以繼續我的腳本中使用?
注意:「回聲」只是作爲一個例子,我正在使用其他命令打印到屏幕。
捕獲外部命令的輸出,使用反引號或qx
:
my $output = qx{echo schwifty};
die unless $output =~ /schw/;
對於多行系統調用諸如ls
我傾向於使用一個@array存儲輸出。當需要處理很多行時,比變量更靈活。
與choroba的例子非常相似,但進一步擴展了一點。
my @output = qx{ ls -l };
foreach my $line (@output)
{
# process each $line here
print "$line";
}
'perldoc -f system' – toolic