Quine を書いてみる、ヒアドキュメントをわかりやすく
use strict; use warnings; sub cut { my $s = shift; $s =~ s/^ //mg; $s; } my $s = cut <<'__EoD__'; use strict; use warnings; sub cut { my $s = shift; $s =~ s/^ //mg; $s; } my $s = cut <<'__EoD__'; x my $t = $s; $t =~ s/^/ /mg; $s =~ s/x/$t\__EoD__/; print $s; __EoD__ my $t = $s; $t =~ s/^/ /mg; $s =~ s/x/$t\__EoD__/; print $s;
実行結果。
[takeyuki@sunya ~]$ perl d.pl > b.pl; diff d.pl b.pl; wc -c d.pl 392 d.pl