与问题有关:How do I substitute with an evaluated expression in Perl?
在Perl中,有没有像Ruby这样的方法:
$a = 1;
print "#{$a + 1}";
它可以打印出2
?
答案 0 :(得分:57)
在Perl中有类似的简写:
$a = 1;
print "@{[$a + 1]}"
这是有效的,因为[]
创建了对包含一个元素的数组的引用(计算结果),然后@{}
取消引用数组,其中内部字符串插值打印出的每个元素数组按顺序排列。由于只有一个,它只打印一个元素。
答案 1 :(得分:10)
你可以使用Greg Hewgill提到的@{[ EXPRESSION ]}
技巧。
还有Interpolation模块,除了评估表达式之外,它还允许您对要插值的值进行任意转换(如编码HTML实体)。