一些时候串表达式需要比简单标准允许值更复杂。perl允许你在串表达式和打印它们的值时任意创建复形表达式。当使用here文档的时候这个可以很容易的使用。
在双倍引证串中perl识别的只有三种特别的字符:$, @, 和 ,但是可以为基准变量调用perl语句,看下面的例子:
$aref = [ 3, 2, 1 ];
print "Countdown: @";
如果表达式的结果在一个单一的标量值中,你可以按照下面的方式使用标量版本$:
print "The current index is $i, the next index is ${($i + 1)}";
你没有限制代码的值。你可以使用任何表达式,包括函数调用。你同样也可以在here文档中使用这个技术发挥它更大的优势:
print "Today is ${scalar localtime}";
print "YTD earnings = $";
SendMail(@targetEmails, <<EOT);
From: admin@localhost
To: ${join ', ', @targetEmails}
Date: ${scalar gmtime}
The following people are disk hogs:
@{[grep {DiskUsage($_) > 1000000000} @users]}
- The Admin
EOT
perl为基准变量提供的扩展语句让嵌入的复形语句到引证串和here文档变得更容易。