Создание двух массивов делает вещи друг с другом в Perl - PullRequest
0 голосов
/ 21 ноября 2010

Я хочу вставить что-то подобное в мою кодировку

@a1 = qw(1 2 3 )

@a2 = qw(5 3 7 8 9 3 5 6 8 2)

количество предметов в @ a1 и @ a2 должно быть в состоянии изменить размер

@ a3 = каждая строка @ a1 плюс каждая строка @ a2, поэтому будет 5 + 1 5 + 2 5 + 3 3 + 1 3 + 2 3 + 3 7 + 1 7 + 2 и т. Д.

with a result of 
6 7 8 4 5 3 8 9 etc

Ответы [ 2 ]

4 голосов
/ 21 ноября 2010

Один из способов - два вложенных map вызова:

my @a3 = map { my $a = $_; map { $_ + $a } @a1 } @a2;
0 голосов
/ 21 ноября 2010

Вы можете сделать это очень просто с помощью вложенных циклов.

use strict;
use warnings;
use Data::Dumper;

my @a1 = qw(1 2 3);
my @a2 = qw(5 3 7 8 9 3 5 6 8 2);

my @c;
foreach my $a2 (@a2)
{
    foreach my $a1 (@a1)
    {
        push @c, $a1 + $a2;
    }
}

print Dumper(\@a1, \@a2, \@c);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...