特殊変数 $" と $, の違い

ちょっと「ん?」となったので。
今日Perl Tip. 配列をプリントアウトしたいぜ! - Lazy Programmer :-p
「それはプリントアウトじゃなくて変数展開だぜ」と細かい事を言ってみる。

my @food = qw/sashimi yakiniku purin/;

local $" = ', '; # とすると
print "@food";   # これは sashimi, yakiniku, purin になるが、
print @food;     # これは sashimiyakinikupurin     になってしまう。

"@food" eq 'sashimi, yakiniku, purin'; # true

「プリントアウトするときの区切り」は $,

my @food = qw/sashimi yakiniku purin/;

local $, = ', '; # とすると
print "@food";   # これは sashimi yakiniku purin になり、
print @food;     # これは sashimi, yakiniku, purin になる。

"@food" eq 'sashimi, yakiniku, purin'; # false


この二つの特殊変数の覚え方は「$"は""でくくるとき、$,はprint 1,2,3ってするとき」と覚えよう!



つ use English