Perlでprintした文字列を変数で受け取る
my $buf = ""; # この変数で受け取る open VAROUT, ">", \$buf or die $!; my $oldhandle = select VAROUT; #---------------------------- # printしたら変数$bufに入る print "ore"; print "ore"; #---------------------------- select $oldhandle; # 出力先を元に戻す print "<<$buf>>"; # <<oreore>>と出力される
スカラー変数のリファレンスをopenすることで
出力を変数にリダイレクト(?)することができます。
PHPでのob_start()等のob_*系関数も簡単に再現できます。