【发布时间】:2010-10-15 06:19:38
【问题描述】:
相关问题:How do I substitute with an evaluated expression in Perl?
在 Perl 中,有没有像 Ruby 一样的方法:
$a = 1;
print "#{$a + 1}";
它可以打印出2?
【问题讨论】:
相关问题:How do I substitute with an evaluated expression in Perl?
在 Perl 中,有没有像 Ruby 一样的方法:
$a = 1;
print "#{$a + 1}";
它可以打印出2?
【问题讨论】:
Perl 中有一个类似的简写形式:
$a = 1;
print "@{[$a + 1]}"
之所以有效,是因为[] 创建了对包含一个元素(计算结果)的数组的引用,然后@{} 取消引用该数组,它在字符串插值中按顺序打印数组的每个元素。由于只有一个,它只打印一个元素。
【讨论】:
"${\\($a+1)}",但为了便于阅读,我更喜欢前者。
"${\($a+1)}"
print "${\\(Cwd::cwd)}";getSCALAR(0x28b7124),print "${\(Cwd::cwd)}";getC:/Users/Administrator/IdeaProjects/untitled2 对我来说
您可以使用 Greg Hewgill 提到的 @{[ EXPRESSION ]} 技巧。
还有Interpolation 模块,除了计算表达式之外,它还允许您对正在插值的值进行任意转换(如编码 HTML 实体)。
【讨论】: