in reply to Mystery interaction between split and gobbling arrays

G'day saintmike,

The behaviour's the same without split:

$ perl -E 'my ($x, @y) = (1,2,); say $#y' 0

or even

$ perl -E 'my ($x, @y) = (1,2,,,,,); say $#y' 0

-- Ken

Replies are listed 'Best First'.
Re^2: Mystery interaction between split and gobbling arrays
by saintmike (Vicar) on Jun 17, 2015 at 23:14 UTC
    One or more trailing commas in a list do absolutely nothing, so I'm not sure how this is related.

      The question was why doesn't the array "gobble up the empty field at the end?". I was merely showing that an array won't gobble up one or many empty fields at the end.

      In fact, an array won't gobble up empty fields at the start, middle or end:

      $ perl -E 'my ($x, @y) = (1,2,,3); say $#y' 1 $ perl -E 'my ($x, @y) = (1,2,,,,3,); say $#y' 1 $ perl -E 'my ($x, @y) = (1,,,,,,2,,,,,); say $#y' 0

      Your question only showed the 2-argument form of split; however, answers with the 3-argument form seemed more to your liking.

      I expect the underlying problem may be the huge disconnect that sometimes occurs when people communicate in a common language. :-)

      -- Ken

        You realize that your additional commas are completely ignored by the perl interpreter?

        perl -MO=Deparse,-P -e 'my ($x, @y) = (1,2,,,,,); print $#y' my($x, @y) = (1, 2); print $#y; -e syntax OK