スカラ変数(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つ「怠惰」から来るのでしょうか。