Perlはロックマン

Shell Scriptを急ぎで書くのに少々難儀な所ではPerlを使う事が多い。
最近知ったのはPerlってVer.4までリファレンス(ポインタ)や多次元配列がサポートされてなかったんだね。

普通に配列の配列を書いたつもりでいると実は1次元配列にされてしまう。

@a=(1,2),@b=(3,4);
for $i (@a,@b) {
  print $i . "\n";
}

1
2
3
4

ここらへんPerlの出自が「ちゃんとしたプログラミング言語ではない」ことが窺える。生粋の戦闘マシーン(オブジェクト指向プログラミング言語)としての宿命を持って生まれたJavaRubyが、「全部リファレンス(ポインタ)でござい」と言うのに対し、まるでPerlは、家庭用ロボット・ロックが、やむにやまれず戦闘用に改造されロックマンとして生まれ変わって生きてきたようなものだ。そのために、寄せ集め的、不恰好で、独特の弱さ、扱いにくさがあって、それでも使う人からしてみれば長年のノウハウが積み重なっているし、あらゆるライバルの武器を吸収し全局面的に成長し、みょうな人間臭さ、愛着さえ湧いてくるんだろう。

200X年。人々と、科学の進歩によって生み出された工業用の人型ロボが共存する時代。ある日のこと、工業用ロボット製作の第一人者であるライト博士のところへ、博士自身が開発したロボット達が次々に暴れだしたという情報が入った。

ロボットが人間を支配しようとする。これを悪の天才ワイリーの仕業にちがいないと考えたライト博士は、いつも自分の息子のように可愛がっている家庭用ロボット“ロック”を呼んだ。そして、暴走を始めた博士のロボットを回収させるべく、ロックを戦闘用ロボット“ロックマン”として改造したのである。

こうして、戦闘用ロボットとなったロックマンは、自身の兄弟である6体のロボットを回収し、ワイリー博士のロボット大工場を破壊すべく、戦いへと向かっていった。