Jame Brooke wrote:
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>




Reply via email to