【发布时间】:2017-05-11 21:46:38
【问题描述】:
为什么简单地从使用' 而不是" 封闭我的单行代码会影响代码的行为?第一行代码产生了预期的结果,第二行代码给出了(对我来说!)一个意想不到的结果,打印出一个意想不到的数组引用。
$ echo "puke|1|2|3|puke2" | perl -lne 'chomp;@a=split(/\|/,$_);print $a[4];'
puke2
$ echo "puke|1|2|3|puke2" | perl -lne "chomp;@a=split(/\|/,$_);print $a[4];"
这是 Perl 版本:
$ perl -v
This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
ARRAY(0x1f79b98)
【问题讨论】:
-
尝试:echo "chomp;@a=split(/\|/,$_);print $a[4];",不涉及 Perl,你会看到你在传递什么在第二种情况下使用 Perl。
-
@martinclayton 不错。一件事-问题中的管道会影响
$_,因此该部分将不准确。 (当然,在实际问题中,数据可能根本没有通过管道传输。) -
@martinclayton 反复执行这个很有趣:)
标签: perl shell double-quotes single-quotes