Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: @array elements multiplication with another array elements.

by grizzley (Chaplain)
on Oct 31, 2012 at 07:39 UTC ( #1001620=note: print w/replies, xml ) Need Help??


in reply to Re: @array elements multiplication with another array elements.
in thread @array elements multiplication with another array elements.

Wow, how can pairwise tell where the end of 1st array is? There was always the problem feature that regardless whether you write
my @array1 = (3,4,6,5,8); my @array2 = (2,2,4,5,1);
or
my @array1 = (3,4,6,5,8,2,2,4); my @array2 = (5,1);
using it with coma always results in flattened list:
@array1,@array2
is equivalent to
(3,4,6,5,8,2,2,4,5,1)
and yet pairwise deals with it:
c:\>perl -le "use List::MoreUtils qw/pairwise/; @a=(1..5);@b=(11..15); + print for pairwise {$a+$b} @a, @b" 12 14 16 18 20 c:\>perl -le "use List::MoreUtils qw/pairwise/; @a=(1..5, 11,12);@b=(1 +3..15); print for pairwise {$a+$b} @a, @b" 14 16 18 4 5 11 12

Replies are listed 'Best First'.
Re^3: @array elements multiplication with another array elements.
by tobyink (Abbot) on Oct 31, 2012 at 07:51 UTC

    It uses a prototype of &\@\@. That means the two arrays get implicitly turned into arrayrefs by the Perl parser. The body of the sub just sees a coderef and two arrayrefs - not a flattened list. See perlsub.

    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
      That's true! Wow, thanks, first example of prototypes being useful
      c:\>perl -le "sub f(\@\@) { print 'array ', ++$cnt ,': ', join ' ', @$ +_ for @_ } @a=(1..5, 11,12);@b=(13..15); f @a, @b" array 1: 1 2 3 4 5 11 12 array 2: 13 14 15

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1001620]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (9)
As of 2016-12-05 09:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (75 votes). Check out past polls.