in reply to Re: split problem
in thread split problem

I believe you have to initialize the array in order. Switching these two lines:

:) nope, this is perl, the order doesn't matter

Looks like some recent optimization has backfired, again

Replies are listed 'Best First'.
Re^3: split problem
by stevieb (Canon) on Nov 29, 2016 at 23:25 UTC

    That's strange. Using OP's code on 5.24.0, it breaks. If I swap those two lines around, it works fine. I've never had an issue with assigning values to an array out of order before, but in this case, it definitely matters :)

    Works:

    use warnings; use strict; my $value = "A\tB\tC\tD\tE\tF\t\t\t\t\t\t"; my @flds = split(/\t/, $value); $flds[8] = 0; $flds[16] = undef; print scalar @flds; __END__ 17

    Borked:

    use warnings; use strict; my $value = "A\tB\tC\tD\tE\tF\t\t\t\t\t\t"; my @flds = split(/\t/, $value); $flds[16] = undef; $flds[8] = 0; print scalar @flds; __END__ Modification of a read-only value attempted at split.pl line 7.