http://www.perlmonks.org?node_id=1055419


in reply to Moving to next iteration of a while loop

Okay I think I know what you meant. In your earlier Search file for certain lines post the monks told you to use a state machine so you were using $check%2 == 1.

When it doubt, spell it out! Be more explicit if it helps you think it through

#!/usr/bin/env perl use strict; use warnings; my $state = 0; sub change_state { my $state = shift; return 1 if $state == 0; return 0 if $state == 1; die "epic fail" } sub read_between_hs { my $line=shift; if ($line =~ /^(j|E|G)/) { print $line; } } while (<DATA>) { my $line = $_; $state = change_state($state) if ($line =~ /^h/); read_between_hs($line) if ($state); } __DATA__ h start printing x dontprintme a dontprintme G printme j printme E printme h stop printing j not between hs should not print E dont print me G dont print me h start printing definitely printable j ahh back to not being ignored G print E print e print -- just kidding h stop printing