Friend, anybody have idea regarding this problem. Assume I want know where the word call "fish" locate in which line number, and this word i save under file call nlexample. Assume we already know fish save under line number 2, how we show this?
Example:nlexample
I love vegetable I love fish I love perl
my script
----------- my $lineno;
while (<>){
if (/pattern/){
print $lineno++;
print ": $_";
}
}
As i know we can use pattern tester to matching right? But why i perl no allow me compiler?
[EMAIL PROTECTED] root]# ./pattern nlexample fish Can't open fish: No such file or directory at ./pattern line 7, <> line 6.
Any comment regarding this problem, please advise.
If "fish" is the string you're looking for, you need to grab it off the command line. Otherwise, the <> operator will think it is a file and try to open it. Given your example usage above and my understanding of what you're trying to do, the code below should work.
Randy.
#!/usr/bin/perl
use strict; use warnings;
my $pattern = pop( @ARGV );
while (defined( my $line = <ARGV> )) { chomp( $line ); if ( $line =~ /$pattern/o ) { printf( "%4d: %s\n", $., $line ); } } continue { close( ARGV ) if eof; }
__EOF__
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>