方法有很多: 
1. 重定向shell的标准输出或标准错误输出到某临时文件,然后再从临时文件中读出执行结果。 
这个办法的好处是可以把标准输出和标准错误输出分开保存! 
2. my $res = `ls`; 
这种方法很直接,也很想shell 
3. open( my $fh, "ls |") or die "$!"; 
while ( <$fh> ) { 
print; 
} 
把管道用起来,比较新颖。Perl 获取shell命令的执行结果
原文:http://www.jb51.net/article/16819.htm