in reply to Re^2: File read and strip
in thread File read and strip
I was asssuming you wanted to call your program like this:
anyway,my_program inputfile outputfile
will read a single line from the file(s) as specified in @ARGV. in other words, $whatever will not be the filename but the next (or first) line of the file you passed as an argument. if you don't pass any arguments <> will read from STDIN, which means it will usually wait for you to enter a line. See perlop (quoted below:) Note that lines read usually end in a newline character ("\n") while filenames usually do not.my $whatever = <>;
while (<>) { ... # code for each line } is equivalent to the following Perl-like pseudo code: unshift(@ARGV, ’-’) unless @ARGV; while ($ARGV = shift) { open(ARGV, $ARGV); while (<ARGV>) { ... # code for each line } }
$! will contain the last filesystem error, which will make it a lot easier to see what's going wrong if you pass the wrong filename to open(), or don't have permissions etc. See also perlvar.
|
|---|