--- Paul Johnson <[EMAIL PROTECTED]> wrote: > On Wed, Jun 25, 2003 at 01:09:41PM -0700, Jeff Westman wrote: > > > Could someone help me please? > > > > I am trying to write a simple script that will take input from the > command > > line as well as input from a pipe. > > > > For example, the script should be able to do both of the following: > > > > $ cat someFile | myPerlScript.pl # from a pipe > > > > and > > > > $ myPerlScript.pl someFile # from command line > > > > This is what I have (very simple): > > > > #----------------------- (begin) --------------------# > > #-- myScript.pl --# > > # > > #!/bin/perl > > use warnings; > > > > sub parseFile() > > { > > while (<>) { ## I tried passing in \*STDIN or \*F but > > ## had nothing but problems with that > > > > # do some processing to the file > > # ... > > print ". "; ## just to do something in the loop for now > > } > > } > > > > if (@ARGV) { > > $file = shift; > > open(F, "< $file") or die "cannot open file $file: $!\n"; > > parseFile; > > close(F); > > } > > else { > > parseFile; > > } > > #----------------------- (end) --------------------# > > You are working far too hard. Remove most of your code: > > #!/bin/perl > use warnings; > > while (<>) { > # do some processing to the file > # ... > print ". "; ## just to do something in the loop for now > } > > > What is obvious to one is not always obvious to another. > > Quite.
WAY too simple! I finally got it to work (see below) but obviously the easy solution is the best solution!!! #!/bin/perl use warnings; sub parseFile(*) { $fh = shift; while (<$fh>) { # do some processing to the file # ... print ". "; } } if (@ARGV) { $file = shift; open(F, "< $file") or die "cannot open file $file: $!\n"; parseFile(\*F); close(F); } else { parseFile(\*STDIN); } Thanks for the help!! JW __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]