Perl字符串中标量变量的内插

本文和大家重点讨论一下Perl字符串中标量变量的内插,当一个Perl字符串由双引号括起来时,如果变量前没有反斜线,则变量会被其值内插。也就是说Perl字符串中的标量变量将被其值替换。

Perl字符串中标量变量的内插

当一个Perl字符串由双引号括起来时,如果变量前没有反斜线,则变量会被其值内插。也就是说Perl字符串中的标量变量将被其值替换。

$mean=“brontosaurussteak”;

$barney=“fredatea$meal”;#$barney现在是“fredateabrontosaurussteak”

$barney=‘fredatea’.$meal;#同上

由此可见,不使用双引号也可以得到相同的结果。但使用双引号更方便些。

◆如果一个变量未被赋值,则将使用空值替换:

这是一种特殊的未定义值,undef

$barney=“fredatea$meat”;#$barney现在是“fredatea”;

◆如果使用的是单独一个变量,是否使用引号没有影响。如:

print“$fred”;#引号是没有必要的

print$fred;#更好的写法

在Perl字符串中变量前($符号前)加上反斜线(\),变量将不会被内插(替换):

$fred=‘hello’;

print“Thenameis\$fred.\n”;#打印出美圆符号,变量不会被其值替换

print‘Thenameis$fred’.“\n”;#同上

变量名将是Perl字符串中有意义的最长的那一个。这可能在当你需要在某次匹配就替换的情况下出问题。Perl提供了一种类似于shell的分隔符:花括号({})。用花括号将变量名括起来。或者将Perl字符串分隔成几个部分,再用连接符(.)串起来:

$what=“brontosaurussteak”;

$n=3;

print“fredate$n$whats.\n”;#不是steaks,而是$whats的值

print“fredate$n${what}s.\n”;#现在是使用变量$what

相关推荐