Jim wrote:
> I can't believe I didn't find this through searching.
> While looping through a file,array,hash etc.. how can I start printing only
> after a certain expression matches. in other words how can I skip the lines
> in the data until an expression match.
> Thanks
> 
> --
> 
> # want to print lines from apple on down
> 
> while ($line = <DATA>) {
>       next until $line =~ /^banan/;

$line never changes, so this is an infinite loop.

>       print $line;
> }
> 
> 
> __DATA__
> orange
> peach
> banana
> apple
> pear
> mango
> 
> 
> 

Try:

#!/usr/bin/perl

use strict;
use warnings;

my $print_line = 0;

while( <DATA> ){
  if( /banana/ ){
    $print_line = 1;
  }elsif( $print_line ){
    print;
  }
}

__DATA__
orange
peach
banana
apple
pear
mango


-- 
__END__

Just my 0.00000002 million dollars worth,
   --- Shawn

"For the things we have to learn before we can do them, we learn by
doing them."
  Aristotle

* Perl tutorials at http://perlmonks.org/?node=Tutorials
* A searchable perldoc is at http://perldoc.perl.org/

-- 
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