我知道在 perl 中,您可以通过简单地执行以下操作来插入标量:
"This is my $string"
但是,我想知道是否有一种方法可以插入要评估的实际 perl 代码?使用 ruby 字符串可以看出我想要什么:
"5 + 4 = #{5 + 4}"
它将评估{}
.
有谁知道在 perl 中执行此操作的方法?谢谢!
我知道在 perl 中,您可以通过简单地执行以下操作来插入标量:
"This is my $string"
但是,我想知道是否有一种方法可以插入要评估的实际 perl 代码?使用 ruby 字符串可以看出我想要什么:
"5 + 4 = #{5 + 4}"
它将评估{}
.
有谁知道在 perl 中执行此操作的方法?谢谢!
您可以使用以下技巧:
"5 + 4 = @{[ 5 + 4 ]}"
或者,您可以使用sprintf
:
sprintf("5 + 4 = %d", 5 + 4);
这些中的任何一个都会产生所需的字符串。可以说,sprintf
它比第一个更安全,因为您可以在一定程度上限制插值的类型。然而,第一个在精神上更接近你的愿望。
如果你想在字符串中插入计算,你可以做 3 件事:
使用@{[]}
. 在第三个括号内,放置您想要的任何表达式。
使用${\ do {}}
. 将您的表达式放在第二个大括号内。
使用简单的字符串连接: $targetstring = "$string1".func()."$string2"
,其中func()
将包含动态内容。
print "5 + 4 = ", 5 + 4;
只需将其移到引号之外。强迫它在引号内有什么意义吗?
您可以使用 进行更多格式化printf
,例如:
printf "5 + 4 = %s\n", 5 + 4;
您可以使用eval
:
eval('$a = 4 + 5');
请注意,eval
应该谨慎使用,它非常不安全。