Your skill will accomplishwhat the force of many cannot PerlMonks

### Re: @array elements multiplication with another array elements.

by tobyink (Abbot)
 on Oct 30, 2012 at 20:27 UTC ( #1001547=note: print w/replies, xml ) Need Help??

Here's another example using pairwise from the lovely List::MoreUtils package...

```use List::MoreUtils qw( pairwise );

my @array1 = (3,4,6,5,8);
my @array2 = (2,2,4,5,1);

my @mults = pairwise { \$a * \$b } @array1, @array2;
print "@mults\n";
[download]```
perl -E'sub Monkey::do{say\$_,for@_,do{(\$monkey=[caller(0)]->[3])=~s{::}{ }and\$monkey}}"Monkey say"->Monkey::do'

Replies are listed 'Best First'.
Re^2: @array elements multiplication with another array elements.
by grizzley (Chaplain) on Oct 31, 2012 at 07:39 UTC
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);
[download]```
or
```my @array1 = (3,4,6,5,8,2,2,4);
my @array2 = (5,1);
[download]```
using it with coma always results in flattened list:
```@array1,@array2
[download]```
is equivalent to
```(3,4,6,5,8,2,2,4,5,1)
[download]```
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
[download]```

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
[download]```

Log In?
 Username: Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2017-08-23 22:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Who is your favorite scientist and why?

Results (360 votes). Check out past polls.

Notices?