Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: Mystery interaction between split and gobbling arrays

by saintmike (Vicar)
on Jun 17, 2015 at 23:14 UTC ( [id://1130902]=note: print w/replies, xml ) Need Help??


in reply to Re: Mystery interaction between split and gobbling arrays
in thread Mystery interaction between split and gobbling arrays

One or more trailing commas in a list do absolutely nothing, so I'm not sure how this is related.
  • Comment on Re^2: Mystery interaction between split and gobbling arrays

Replies are listed 'Best First'.
Re^3: Mystery interaction between split and gobbling arrays
by kcott (Archbishop) on Jun 18, 2015 at 04:23 UTC

    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

        I'm not entirely sure where you're heading with this.

        I posted some information that turned out not to be useful to you. I acknowledged this in what I believed to be a pleasant manner. To be honest, that should have been the end of it.

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

        Yes.

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

        B::Deparse's -P option disables prototype checking. Including it was probably an error given there's no function calls to deparse and this thread has nothing to do with prototypes. You get the same output without it:

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

        I occasionally use the -p option. This adds extra parentheses which can sometimes be useful; although, in this instance, it only appears to add clutter:

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

        -- Ken

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1130902]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (2)
As of 2024-04-19 20:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found