方法がわからなかったので、perldocで調べてみると通常の openで
"&"をつければいいみたい。そこで dupシステムコールと同じとあるん
だけど、dupの意味が分からなかったでそちらも調べました。名前から
察するに単に複製って思っていたんですけど、既に開いていれば閉じて
複製するという具合のようです。
#!/usr/bin/perl use strict; use warnings; open STDERR, ">&", *STDOUT or die "Can't dup STDOUT"; warn "Output to STDOUT\n"; print "Also output to STDOUT\n";
こんな感じのプログラムを書きます。通常であれば
% perl dup.pl > /dev/null
とやると warnのものは出力されますが、この場合はすべて /dev/nullに
出力されるため、何も表示されません。