perl:这里是反引号操作符内的文档

时间:2011-04-08 18:58:42

标签: perl backticks

给定一个程序实用程序从stdin获取命令并返回一个有用的退出代码,这个perl语法有效:

my $result = `utility -switch1 -switch2 <<HERE
set ridin_round_the_world TRUE;
do this;
sign that;
try { 
   make some_girl; 
   return 0;
} 
except { 
   sleep --week;  
   exit 1;
}
HERE`;
print "result is $result\n";

通过“工作”,我的意思是perl脚本在命令列表中启动实用程序,管道,等待实用程序退出,然后返回结果。

但为什么会这样呢?反引号如何知道调用程序,然后在HERE文档中输入管道?我对perl实现很幸运,还是这种标准行为?

1 个答案:

答案 0 :(得分:5)

这是shell的here-doc,而不是Perl的。尝试在shell中运行:

% cat <<EOF
some
thing
EOF