как себе может распределять два 'arrays' (договоренности) для того, чтобы функция возвратила в две переменные 'array', у которых есть печать 'array'?

У меня есть функция, которую возвращает два 'array', но у него была трудность в распределении этих результатов в две переменные 'array'.

my (@A, @N) = volver_dos_arrays;

dd @A;  # muestra lo que está dentro de @A (dd = "data dumper")
dd @N;  

sub volver_dos_arrays
{
    my @alfa = <A B C>;
    my @num  = 1, 2, 3;
    return @alfa, @num;
}

Закончись следующим: в чем мы можем видеть, что первый 'array' сохранял два 'array', что он возвратил функцию:

Array @A = [["A", "B", "C"], [1, 2, 3]]
Array @N = []

Но, я хотел, чтобы это было так:

Array @A = ["A", "B", "C"]
Array @N = [1, 2, 3]

Я знаю, что следующее функционирует, но мне не нравится сохранять 'array' в 'scalar'. Я не хочу изменить печать @A ни @N.

my ($A, $N) = volver_dos_arrays;

dd $A;
dd $N;

sub volver_dos_arrays
{
    my @alpha = <A B C>;
    my @num   = 1, 2, 3;
    return @alpha, @num;
}

Как я могу делать это, не меняя печатей?


Я изучил, как делать это, но я все еще задаю вопрос, потому что он озадачил меня из-за пары часов. Я делаю ответ, если никто не дает ответ, сходный с тем, что я проверил.

5
задан 10.05.2019, 18:47
1 ответ

Только я нашел ее soluciГіn "binding":

my (@A, @N) := volver_dos_arrays();
2
ответ дан 03.12.2019, 23:07

Теги

Похожие вопросы