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. -- Paul Johnson - [EMAIL PROTECTED] http://www.pjcj.net -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]