与问题相关:如何用 Perl 中的评估表达式替换?
在 Perl 中,有没有像 Ruby 一样的方法:
$a = 1;
print "#{$a + 1}";
它可以打印出来2
吗?
Perl 中有一个类似的简写:
$a = 1;
print "@{[$a + 1]}"
这是有效的,因为[]
创建了对包含一个元素(计算结果)的数组的引用,然后@{}
取消引用数组,在字符串插值中按顺序打印数组的每个元素。由于只有一个,它只打印一个元素。
您可以使用@{[ EXPRESSION ]}
Greg Hewgill 提到的技巧。
还有插值模块,除了计算表达式之外,它还允许您对正在插值的值进行任意转换(如编码 HTML 实体)。