Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re^3: regexp list return 5.6 vs 5.8

by almut (Canon)
on Jan 25, 2008 at 06:03 UTC ( #664222=note: print w/replies, xml ) Need Help??

in reply to Re^2: regexp list return 5.6 vs 5.8
in thread regexp list return 5.6 vs 5.8

I think the OP is essentially asking (Sixtease please correct me if I'm wrong) how you would make something like the following snippet print "e", and not "2"

my @x = qw(a b c); my @y = qw(d e); print scalar (@x, @y); # prints "2" (number of elems in @y)

treating the combined arrays as if they had been written like

print scalar qw(a b c d e); # prints "e" (last elem in list)

Kind of like this

print scalar ((@x, @y)[0..@x+@y-1]); # prints "e" print scalar sub {@_[0..$#_]}->(@x, @y); # prints "e"

but less ugly, and without having to take special care of the subtle problem you run into with older versions of Perl when the arrays are empty, and the selecting range for the slice becomes [0..-1]  (what this thread is about, essentially).

Irrespective of whether you'd actually need to do something like this in real-life programming, it's still a valid question in and of itself, IMO.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2020-10-24 01:29 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (242 votes). Check out past polls.