iRSSの日記

はてなダイアリーiRSSの日記の続き

初めてのPerlを読んでます。

お正月です。こういうときは、のんびりと普段できないことをしてみたいものです(そう、あしたからは、また、出社です..)
今、「初めてのPerl」を読んでいます。

初めてのPerl

初めてのPerl

やっぱ、らくだ本読まないとPerlは始まらない

思い出すと、僕が手にした最初のPerlの参考書は、Perlリファレンスでした。98年ごろだったと思います。

CGI & Perl ポケットリファレンス (Pocket reference)

CGI & Perl ポケットリファレンス (Pocket reference)

しかし、今思えば、リファレンスでは、思想的なところはぜんぜん触れられていないので、よくわからないという印象だけで終わってしまいました。もちろん挫折。
CGIの入門書にも、やっぱり、Perlの思想は出てきません。いろいろ見るものの気分は、PHPでした。

しかし、2005年になって、周りの人々に感化され、Perlを見直したのですが、その決定的な言語としての魅力を伝えてくれているのは、やっぱり、らくだ本ですね。

プログラミングPerl〈VOLUME1〉

プログラミングPerl〈VOLUME1〉

あの本をよんで、やっとこさ、Perlを信用できるようになったのです。

Perlは言語である」

といわれて、最初難しいのはしかたないのだと納得しました。
作者ラリーの言葉に共感でき、これなら勉強しようという気になったのです
Vol1,Vol2をひととおり眺め、オブジェクト指向を勉強したくて

続・初めてのPerl - Perlオブジェクト、リファレンス、モジュール

続・初めてのPerl - Perlオブジェクト、リファレンス、モジュール

↑こちらをよみ。なんとか、ひととおり使えるようにはなりました。
(おかげさまで)

こうやって一巡りしたのですが、読んでいない本がありました。
それが「初めてのPerl」なんです。
入門書を読んでいる時間も無かったのですが、お正月ということでやっとこさ、じっくり読める時間ができました。

初めてのPerlを読んで、わかったこと

Perlの熟練者の皆様には、他愛の無い話題ですが、僕にとってはまだまだ知らないことがあるんだなあと、初めてのPerlからも、思い知らされます。いくつかメモします。

24ページ:すべての数値は同じ内部形式で表現される。

Perlには、型がありませんが、整数と浮動小数点数はどうやって区別してるんだろうという疑問がありました。初めてのPerl24Pにその回答がありました。
答えは「区別しない」ということです。なので、整数にしても、内部的には倍精度浮動小数点数だそうです。.Netとかでは、integerにするとはやいとか、doubleはメモリを消費するとかいろいろいわれています(本当かどうかもさだかでない)が、Perlでは、倍精度浮動小数点数のみということです。すっきりしましたね。

49ページ:配列の添え字が整数でないときはどうなるのか?

これも、考えたこと無かったですが、Perlでは
「整数になっていない場合は、自動的に切り捨てられて、それを超えない最大の整数に変換される」ということです。
こういうのは、試せばわかるんですけどね。

use strict;
my @a = (0,0,0);
$a[1.99] = 1;

print $a[0] . $a[1] .$a[2];

結果:010となり、 $a[1]に1が代入されていました。四捨五入ではないので、注意。ただ、小数点のある添え字をつけることはまあないですが、エラーにはならないということは、おぼえておいたほうが いいですね。