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) ;
}
In reply to Re: Unix system commands to Perl
by bronto
in thread Unix system commands to Perl
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |