在引用中,如何将变量与其他文本分开:
例如,我想打印“YellowBrick”:
my $var = 'Yellow';
print "$varBrick";
# $varBrick not defined!!
您可以使用:
print "@{[$var]}Brick"
我不明白的是语法:每次转义一个变量时都需要全部 5 个字符 (@{[]}
) 吗? @{} 或 [] 有什么意义吗?这是在创建一个数组,然后是一个数组的引用还是什么?
基本上我的问题是可以用 @{[]}
谢谢!
最佳答案
@{[...]}
不需要。你只需要
print "${var}Brick";
或
print $var."Brick";
"@{ EXPR }"
插入由表达式返回的引用引用的数组。
[ LIST ]
是数组构造器。它返回对新数组的引用,该数组通过将括号内的列表分配给数组来初始化。
这意味着
"@{[$var]}Brick"
与
相同"@{ my @anon = $var; \@anon }Brick"
显然,我上面提出的解决方案要好得多。 @{[...]}
将允许您在字符串文字中嵌入 Perl 代码。
"...@{[ uc($var) ]}..."
如果只是一个标量,也可以使用以下方法:
"...${\ uc($var) }..."
也就是说,我更喜欢使用连接而不是创建不必要的引用。
"...".( uc($var) )."..." # The parens aren't needed here.
关于Perl:在引号中使用变量的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15354392/