当我运行ls命令时运行正常.但是echo $PATH没有给我任何来自perl的输出.当我echo从shell提示符运行它给我输出.你能解释一下这种行为吗?
#!usr/bin/perl
$\="\n";
$out = `ls`;
print $out;
$out=`echo $PATH`;
print $out;
Run Code Online (Sandbox Code Playgroud)
反引号插入像双引号,所以你需要逃避$.
$out=`echo \$PATH`;
Run Code Online (Sandbox Code Playgroud)
请注意,虽然技术上正确的问题答案是$插值,但您还应注意,不应将Perl视为shell脚本,而应通过反引号调用外部命令,而不是使用为此目的设计的Perl内置函数或库函数:
$out = join("\n", glob("*")); # same as `ls`
$out = $ENV{PATH}; # same as `echo $PATH`
Run Code Online (Sandbox Code Playgroud)
这有几个显着的优点:
| 归档时间: |
|
| 查看次数: |
2581 次 |
| 最近记录: |