那么,这取决于具体情况.例如,
$foo = "$dxyabcdef";
$bar = "${dxyabc}def";
Run Code Online (Sandbox Code Playgroud)
$foo将具有值$dxyabcdef而不是$dxyabc附加def,这是值$bar.
否则,据我所知,它们是一样的.
perldoc perldata 解释为什么在标量变量的上下文中使用curlies:
与在某些shell中一样,您可以将变量名称括在大括号中,以便将其与下面的字母数字(和下划线)消除歧义.在将变量插入字符串以将变量名称与后面的双冒号或撇号分隔时,您还必须执行此操作,因为这些将被视为包分隔符:
Run Code Online (Sandbox Code Playgroud)$who = "Larry"; print PASSWD "${who}::0:0:Superuser:/:/bin/perl\n"; print "We use ${who}speak when ${who}'s here.\n";没有大括号,Perl会寻找a
$whospeak,a$who::0和$who's变量.最后两个是(推测)不存在的包中$0的$s变量和变量who.
正如其他人所提到的,$dxyabc和之间没有区别${dxyabc}.引用的文档解释了为什么"$dxyabc_"和之间存在差异"${dxyabc}_"