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.
|