use Scriptalicious; my $ifd = fileno(STDIN); my $ofd = fileno(STDOUT); getopt("ifd|i=i" => sub { close STDIN; open STDIN, "<&$_[1]" or do { moan "failed to open input fd $_[1]; $!"; sleep 60; }; }, "ofd|o=i" => sub { close STDOUT; open STDOUT, ">&$_[1]" or do { moan "failed to open output fd $_[1]; $!"; sleep 60; }; }, ); my $lines = 0; while ( ) { $lines++; chomp; say "got `$_'"; } say "saw $lines line(s) on input"; close STDIN;