Perl の unpack 時の ”x”

Perl の unpack を極めるべく perlpacktut を見てたらこんな一文を発見。

"x" means "skip a byte" when "unpack"ing; when "pack"ing, it means
"introduce a null byte" - that's probably not what you mean if
you're dealing with plain text.

むむむ。今まで unpack で要らないバイトを捨てる時に、

my( $a, undef, $b ) = unpack "a4a2a3", $data;

のようなコードをいっぱい見たし、また書いてきたんだけど、

my( $a, $b ) = unpack "a4x2a3", $data;

って書いたほうが全然イイジャン。perldoc 奥深し。

Perl の優位性 = CPAN」みたいな言われ方することって良くあるけど、Perl の付属ドキュメントも品質良いですよね。特に *tut(チュートリアル) は便利だなあ。英語だけど。

ちなみにチュートリアルの全てが *tut という名前ではないので、詳しくは perldoc perl で調べると良いです。perldoc のリストが見れます。