我有一个perl脚本,其中包含以下内容:
" \"blah\@$string;blah\" "
Run Code Online (Sandbox Code Playgroud)
但我不确定这\@
是做什么/应该做什么的.
我试过谷歌搜索' \@
'但我似乎找不到任何东西.
在@
告诉Perl按字面意思对待它之前的反斜杠,否则它将把它当作一个数组.如果@
后跟一个$
,它将被视为数组引用(一个包含对数组的引用的字符串).如果你把它打印出来可能会更清楚(我已经更改了你的代码qq||
):
my $string = 'i-am-a-string';
print qq| "blah\@$string;blah" |; # with backslash
# "blah@i-am-a-string;blah"
print qq| "blah@$string;blah" |; # no backslash
# Can't use string ("i-am-a-string") as an ARRAY ref
$string = [1,2,3]; # string now an array reference
print qq| "blah\@$string;blah" |; # with backslash
# "blah@ARRAY(0x803bc0);blah" # ARRAY(0x803bc0) is where (1,2,3) lives
print qq| "blah@$string;blah" |; # no backslash
# "blah1 2 3;blah"
Run Code Online (Sandbox Code Playgroud)