in reply to Unix system commands to Perl

I would split your first system in two opens:

open FILE,"< $file" or die $! ; open MAIL,"| mailx -s 'Title' emailaddresshere" or die $! ;

Note: be sure to escape at signs (with \@) in emailaddresshere.

Then you could easily do:

# All-in-one-line while print MAIL while <FILE> ;

(which is short for while (<FILE>) { print MAIL } or, more verbose, while ($_ = <FILE>) { print MAIL $_ })

About the second question, this code snippet of mine:

open STDERR,"/dev/null" ; warn "Test" ; system('echo TesT') ; system('echo TEST 1>&2') ;

just print TesT, as one could expect, so I suppose that something in your code between the open and the system call breaks your redirection. What about using Net::Ping?

Ciao!
--bronto

# Another Perl edition of a song:
# The End, by The Beatles
END {
  $you->take($love) eq $you->made($love) ;
}