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: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/