On Mon, 18 Feb 2002 14:40:17 -0900, [EMAIL PROTECTED] (Michael Fowler) wrote:
>On Mon, Feb 18, 2002 at 07:20:50AM -0500, zentara wrote:
>> You are using nested while loops to iterate
>> thru a file, this isn't necessary. Also you don't need to
>> open a file just to loop thru it.
>
>Yes, you do. At some level, you have to open the file if you want to
>read its contents.
>
>
>> my $file = 'c:/davidcode/perlbeast/*.secret';
>> while (<$file>){
>> print "$file: $. :$_\n" if /$regexp/;
>> }
>
>This code doesn't actually work. Did you test it? Perl won't automatically
>open a file using the file read operator like that. The <> operator is the
>only one that's special in that respect.
Ooops, you can tell I'm a beginner. I was taking it from some code like below.
I forgot about the magical properties of @ARGV to auto-open files.
I just mindlessly stuck $file in there for ARGV. My apologies.
I know, I know.......always test your code.
while (<>){
print "$file: $. :$_\n" if /$regexp/;
}
#!/usr/bin/perl
use warnings;
use strict;
use File::Find;
my ($search, $ext) = @ARGV;
if (defined $ext) {$ext = ".$ext"} else {$ext = '.*'};
die "Usage : greprz 'search' 'extension' (extension optional)\n" if ($search eq
"");
@ARGV = ();
find (sub { push @ARGV, $File::Find::name if (-f and -T and $ext or
/\Q$ext$/)}, ".");
while (<ARGV>) {
close ARGV if eof;
print "$ARGV: $. :$_\n" if /$search/;
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]