Dan Anderson wrote: > > Is there an easy way to read <STDIN> into a stack until some pattern is > matched and then break. I tried all sorts of (error producing) code, > but nothing seemed to work. I ended up with: > > #! /usr/bin/perl > > #can I make this more concise? > $infinite_loop = 1; > while ($infinite_loop) > { > $temp = <STDIN>; > if ($temp =~ /QUIT/) > { > $infinite_loop = 0; > continue; > } > push @thestack, $temp; > } > > I've got a funny feeling that perl will let me make the above 15 lines > of code /much/ more concise. How can I do this? > > Is there any way to do something like? > > while (1) > { > push @thestack, <STDIN> unless <STDIN> =~ /QUIT/; > last if <STDIN> =~ continue; > } > > Or perhaps something even more concise (and much more perlish)?
while ( <STDIN> ) { last if /QUIT/; push @thestack, $_; } Or, with the variable $temp: while ( my $temp = <STDIN> ) { last if $temp =~ /QUIT/; push @thestack, $temp; } John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]