Devel::Peek::Dump
なんかは結果が標準エラー出力に表示されるだけなのでコード内で結果を使いたいと思うと標準エラー出力の出力先を変数へ書き換え、その後復元させてやる必要がある。
use strict; use warnings; use utf8; my $stderr; open my $temp, '>&', STDERR; close STDERR; open STDERR, '>', \$stderr; warn "hoge"; close STDERR; open STDERR, '>&', $temp; close $temp; print $stderr; # ”hoge” が出力される
こんな感じで取りあえずうまくいくんだけど、もっといい方法はないのだろうか。
tie
を使うのは大げさな気がする- 結び付けられるクラスを用意しなくてはならない?
Tie::STDOUT
系のやつ使えば良い?- あまり詳しくないので勘違いしているかも
open
の第二引数
自分用メモ。
>
は書き込み<
は読み込み&
はdup(2)
してopen
される