まくまくPerlノート
スクリプトの末尾にテキストデータを埋め込む(埋め込みドキュメント)
2008-07-06

ソースコードの中で __END__ マーカーが登場すると、Perl の処理系はそれ以降の行の構文解析を行いません。 __END__ マーカー以降に記述されたテキストは DATA ファイルハンドルを使って読み出すことができます。 サンプルデータとしてテキストファイルを用意する代わりに使用できます。

例: すごく簡単な例 (sample.pl)

#!/bin/perl

while (<DATA>) {
    print;
}

__END__
aaa
bbb
ccc

実行結果

$ ./sample.pl
aaa
bbb
ccc

例: 10進表記の RGBA 値を16進表記に変換する

#!/bin/perl
use strict;

for (<DATA>) {
    if (/.*\((\d+),(\d+),(\d+),(\d+)\).*/) {
        printf "%02X%02X%02X%02X\n", $1, $2, $3, $4;
    }
}

__END__
RGBA(4,35,22,255);
RGBA(0,0,19,16);
RGBA(19,19,19,64);
RGBA(59,45,35,87);
RGBA(43,54,56,87);
RGBA(89,50,60,99);

実行結果

$ ./sample.pl
042316FF
00001310
13131340
3B2D2357
2B363857
59323C63
2008-07-06