http://qs321.pair.com?node_id=664222


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.