perlの特殊変数を実際に使ってみよう その2【$,】【$"】【$\】

昨日に引き続き、特殊変数を使ってみました。

$,ってなんぞや・・・?

まずは、$, です。
説明から読んでみましょう。

出力時の項目区切り文字。print @xx; の時に有効


なるほど

使ってみよう
#!/usr/bin/perl

use strict;
use warnings;

my @array = qw/aa bb cc/;
$, = "---";
print @array;

結果

aa---bb---cc


なるほど。
確かに説明どおり、出力時の区切り文字が変化している。


これは少し便利かな。
join して、hogehogeがいらない。
でも、$,をglobalで変えるのはよろしくないな。

{
my @array = qw/aa bb cc/;
local $, = "---";
print @array;
}

こうすべき?

次は、$"

説明を読んでみましょう。

出力時の項目区切り文字。print "@xx"; の時に有効

なるほど。

使ってみよう
#!/usr/bin/perl
use strict;
use warnings;

my @array = qw/aa bb cc/;
$" = "---";
print @array;
print "\n\n";
print "@array";

結果は

aabbcc

aa---bb---cc

確かに、

print @array;
これでは適用されず
print "@array";
これに反応している。

引用符内での適用の有無の違いだけか。

次は、$\

例によって意味から

出力時の行末文字。print "$xx"; の後ろに付加される

なるほどね。

やってみよう。
#!/usr/bin/perl
use strict;
use warnings;

my @array = qw/aa bb cc/;
$\ = "  (-_-)\n";

for(@array){
    print $_;
}

結果は

aa  (-_-)
bb  (-_-)
cc  (-_-)

いい感じwww


これは便利だな。