スカラ変数(3) 魔法のスカラ変数
perlintro によると、「魔法のスカラ変数」("magic" scalars
)がいくつかあるそうです。なにやらファンタジックですね。
「魔法のスカラ変数」は一見すると句読点や文字化けのようですが、とても色々な用途で使われます。詳しくは perlvar を参照とのこと。
とりあえず知っておくべきなのは「$_」で、「デフォルト変数」(default variable
)と呼ばれるらしいです。何がデフォルトなのかと言うと、Perlのいくつかの関数がこの「$_」をデフォルトの引数(argument)として使われるらしいです。
例えば
print;
とだけ書くと、「print $_;」と書いたのと同じ意味になるわけですね。
では、こうするとどうなんでしょうか。
# scalartest.pl
$_ = "Magic Scalar!";
print;
デフォルト変数である $_ に文字列を代入して、何も引数を渡さずに print を呼んでいます。print の引数を省略すると、$_ が使われるらしいですが、果たして上手くいくでしょうか。実行してみます。
D:\dev\perl>perl scalartest.pl Magic Scalar!
をを。ほんとだ。
この省略する書き方も、プログラマの三大美徳の内の1つ「怠惰」から来るのでしょうか。