为什么`打印'XYZ $ _“`工作但是'打印'$ _XYZ”`不?

时间:2017-02-12 18:06:01

标签: perl

对于输入abc,代码

perl -ne 'print "XYZ$_"'

打印XYZabc,但在切换$_XYZ的顺序后,即

perl -ne 'print "$_XYZ"'

它什么都不打印。为什么呢?

2 个答案:

答案 0 :(得分:6)

XYZ可以是变量名称的一部分,因此$_XYZ是变量名称,而不是$_后跟文字XYZ

您可以拆分字符串:

perl -ne 'print $_ . "XYZ"'

答案 1 :(得分:4)

Perl标识符可能包含任何字母,数字或下划线,因此您要求perl打印变量$_XYZ的值,该值不存在

您可以使用大括号{ ... }包围变量的名称,以将其与任何周围的字符分开,如此

perl -ne 'print "${_}XYZ"'