On Feb 7, 2013, at 10:34 PM, shawn wilson wrote: > How do I take in a file or pipe input? What I want is: > script.pl file.txt > or > cat file.txt | script.pl > > What I'm trying is: > my $logfile; > if (@ARGV and $ARGV[0] =~ /^-./) { > open($logfile, '<', $ARGV[0]); > } elsif (-t STDIN and not @ARGV) { > $logfile = <STDIN>; > } else { > doe "no data" > } > > PS - I want to avoid slurping the whole file.
The null filehandle (<>) will read from standard input if @ARGV is empty, and from the members of @ARGV, interpreting each scalar as a file name to be opened automatically in succession. Does that do what you want? -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/