Marshall++ for pointing out the most obvious solution. However, since it is possible that you have simplified what you are trying to accomplish, here are three alternatives.You can decide which is best.
sub display_paragraph() { my $aref = shift; my $indentation = shift; my $first_time = 0; # declare and init a flag for my $line (@$aref) { if (++$first_time == 1) { # change and test the flag print ' ' x $indentation; } print "$line\n"; } }
use 5.010; sub display_paragraph() { my $aref = shift; my $indentation = shift; for my $line (@$aref) { state $first_time = 0; # declare and init a flag if (++$first_time == 1) { # change and test the flag print ' ' x $indentation; } print "$line\n"; } }
sub display_paragraph() { my $aref = shift; my $indentation = shift; while (my ($index, $line) = each @$aref) { if ($index == 0) { # test the position print ' ' x $indentation; } print "$line\n"; } }
In reply to Re: Easiest way to do something only on first iteration of loop
by Mr. Muskrat
in thread Easiest way to do something only on first iteration of loop
by ibm1620
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |