2014-04-23 62 views
4

在Perl中字符串$dxyabc的定義和字符串${dxyabc}有什麼區別?

+5

這很清楚OP在詢問什麼。搶先投票重新開放。 – mob

回答

9

那麼,這取決於上下文。例如,

$foo = "$dxyabcdef"; 
$bar = "${dxyabc}def"; 

$foo將具有$dxyabcdef代替$dxyabcdef與所附的值,這是$bar值。

否則,據我所知,它們是一樣的。

1

無,大括號是變量名稱周圍的分隔符。

8

perldoc perldata解釋爲什麼花括號中的數值變量的情況下被使用:

正如一些炮彈,你可以在大括號括起來 變量名從以下字母數字歧義它(和下劃線)。你也必須這樣做時 插值變量爲一個字符串變量名 從以下雙冒號或撇號分開,因爲這將是 作爲一個包分離器以其他方式處理:

$who = "Larry"; 
print PASSWD "${who}::0:0:Superuser:/:/bin/perl\n"; 
print "We use ${who}speak when ${who}'s here.\n"; 

沒有大括號,Perl會查找$whospeak$who::0$who's變量。後兩個將是$0$s變量 (推測)不存在的包who


所以當其他人所說,有$dxyabc${dxyabc}之間沒有什麼區別。所引用的文件解釋了爲什麼"$dxyabc_""${dxyabc}_"之間存在差異

相關問題