Quine を書いてみる、標準出力と標準エラー出力に出力

標準出力だけでなく、標準エラー出力する Quine を書いてみた。やってみてわかったことは、たいして面白くないってこと。ヒアドキュメント + 正規表現置換技、とはまったく別の方法の Quine を考える方が面白いだろう。

use strict;
use warnings;

my $x = <<'___EoD';
use strict;
use warnings;

my $x = <<'___EoD';
q
$x =~ s/q/$x\___EoD/;
print {*STDOUT} $x;
print {*STDERR} $x;
___EoD
$x =~ s/q/$x\___EoD/;
print {*STDOUT} $x;
print {*STDERR} $x;
[takeyuki@sunya ~]$ perl a.pl > a.out 2> a.err; diff3 a.pl a.out a.err