找回密码
 注册
查看: 5588|回复: 0

perl如何在字符串中插入变量

[复制链接]
发表于 2011-11-13 09:54:15 | 显示全部楼层 |阅读模式
当一个字符串由双引号括起来时,如果变量前没有反斜线,则变量会被其值内插◆。也就是说字符串中的标量变量◆将被
其值替换。
◆这和数学或统计学中的内插含义是不同的
◆还有一些其它的变量类型,在后面章节中将看到
$mean = “brontosaurus steak”;
$barney = “fred ate a $meal”; #$barney 现在是“fred ate a brontosaurus steak”
$barney = ‘fred ate a’. $meal; #同上
从上面得知,不使用双引号也可以得到相同的结果。但使用双引号更方便些。
如果一个变量未被赋值,则将使用空值替换:
◆这是一种特殊的未定义值,undef。在本章后面将介绍到。如果开启了警告,Perl 将提示你内插的变量未定义(未初始化)。
$barney = “fred ate a $meat”; #$barney 现在是“fred ate a ”;
如果使用的是单独一个变量,是否使用引号没有影响。如:
print “$fred”; #引号是没有必要的
print $fred; #更好的写法
将单独的一个变量使用引号括起来没有错误,但别的程序员可能会笑你◆。变量内插通常也叫做双引号内插,因为它在双
引号中(而非单引号)才有效。在某些别的字符串中也可能被内插,遇到它们时再讲解。
◆是的,可能将其值作为字符串而非数字看待。在极少数情况下,是需要引号的。但几乎大多数情况都是浪费笔墨。
在字符串中变量前($符号前)加上反斜线(\),变量将不会被内插(替换):
$fred = ‘hello’;
print “The name is \$fred .\n”; #打印出美圆符号,变量不会被其值替换
print ‘The name is $fred’. “\n”; #同上
变量名将是字符串中有意义的最长的那一个。这可能在当你需要在某次匹配就替换的情况下出问题。Perl 提供了一种类似
于shell 的分隔符:花括号({})。用花括号将变量名括起来。或者将字符串分隔成几个部分,再用连接符( . )串起来:
$what =“brontosaurus steak”;
$n = 3;
print “fred ate $n $whats.\n”; #不是steaks,而是$whats 的值
print “fred ate $n ${what}s.\n”; #现在是使用变量$what
print “fred ate $n $what”. “s.\n”; #另一种方法
print ‘fred ate ’. $n . ‘’. $what . “s.\n”; #一种复杂的方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 21:19 , Processed in 0.018115 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表