Perl:在引号中使用变量的语法
在引号中,如何将变量与其他文本分开: 例如,我想打印“YellowBrick”: 您可以使用:Perl:在引号中使用变量的语法,perl,Perl,在引号中,如何将变量与其他文本分开: 例如,我想打印“YellowBrick”: 您可以使用: print "@{[$var]}Brick" 我不明白的是语法:每次转义一个变量时是否都需要全部5个字符(@{[]})?@{}或[]有什么意义吗?这是一个数组,然后是对aarray的引用还是什么 基本上,我的问题是用@{[]} 谢谢 为什么不打印$var“brick”?。。保持简单:-)@{[…]}是不需要的。你只需要 print "${var}Brick"; 或 “@{EXPR}”插入表达式返
print "@{[$var]}Brick"
我不明白的是语法:每次转义一个变量时是否都需要全部5个字符(@{[]}
)?@{}或[]有什么意义吗?这是一个数组,然后是对aarray的引用还是什么
基本上,我的问题是用@{[]}
谢谢 为什么不打印$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.
对于简单标量,您可以只使用大括号作为分隔符:
"${var}Brick"
@{[]}
是一种允许插入任意表达式的黑客。就像它在字符串外部一样,@{$x}
将$x
视为数组引用并取消引用它<代码>[]是匿名数组引用构造函数。那么这个提法呢,
"@{[ $var ] }Brick"
表示“生成一个字符串。首先构建一个包含$var
值的匿名数组引用,然后将此引用转换为包含$var
值的数组,然后将一个元素的数组插入字符串中,并在其后加上文字字符串‘Brick’。”
请注意,由于
“@{[…]}”
依赖于数组插值,如果..
是一个列表值,则它受$list\u SEPARATOR
的约束,真正的诀窍是可以进行进一步的插值。例如,考虑[{SeaTrFF(%.02f),$var)] }。正如Aniket所暗示的,通常很少有理由使用这样的东西,但它在(比如)这里的文档中很有用,在这里,你不能跳出引号来插入一些东西,然后再返回。总而言之,使用它可能不是最好的主意,因为它可能会让其他试图理解您的代码的人感到困惑。但这是一个巧妙的技巧。问题的目的是如何在引号内使用变量,而不是在引号外使用变量。
"${var}Brick"
"@{[ $var ] }Brick"