in reply to Easiest way to do something only on first iteration of loop
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"; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Easiest way to do something only on first iteration of loop
by ibm1620 (Hermit) on May 06, 2016 at 23:34 UTC | |
by Marshall (Canon) on May 07, 2016 at 03:07 UTC | |
by Athanasius (Archbishop) on May 08, 2016 at 06:53 UTC | |
by Marshall (Canon) on May 08, 2016 at 12:21 UTC | |
by BrowserUk (Patriarch) on May 08, 2016 at 12:48 UTC | |
|
Re^2: Easiest way to do something only on first iteration of loop
by GotToBTru (Prior) on May 09, 2016 at 14:31 UTC |