即。能够做到
$result = `my command`;
使用:raw
,:utf8
等
我不知道的任何特殊变量,可以使用的替代方法或模块?
答案 0 :(得分:9)
嗯,我不知道是否有任何特殊变量,但为什么不使用open()来执行该任务?您可以像管理文件一样在管道上指定编码:
open(my $cmdin, "-|:raw", "your command");
my $result = join('', <$cmdin>);
close($cmdin);
答案 1 :(得分:2)
使用popen:
open (my $fd, "-|", $prog, @args)
or die "Couldn't start $prog: $!";
do_whatever($fd);
while (<$fd>) { ... };
或者,如果这还不够,你应该看看IPC::Open2及其堂兄Open3。