in reply to Changing an array from a sub

sub ChangeArray1 { my $i = 0; LOOP: return if ($i >= @A); $A[$i++] = 1; # Write to global array goto LOOP; }

That may be a "loop" in Assembler but it is technically not a "loop" in Perl. A proper perl loop would look something like this:

sub ChangeArray1 { my $i = 0; LOOP: { $A[ $i ] = 1; redo LOOP if ++$i < @A; } }

Replies are listed 'Best First'.
Re^2: Changing an array from a sub
by hippo (Archbishop) on Feb 13, 2018 at 09:14 UTC

    Personally I prefer this formulation (with the same caveat about modifying the global):

    sub ChangeArray1 { $_ = 1 for @A; }

    which to me is both clear and concise. All subjective, of course.

    And for the benefit of the OP: Go To Statement Considered Harmful.