Возвращаем из subroutine массив с данными perl

Пример sub :

sub test {
my @arr = ("1", "2", "3", "4");
};

Чтобы вернуть массив, мы возвращаем ссылку на него :

sub test {
my @arr = ("1", "2", "3", "4");
reutrn \@arr;
};

Далее в скрипте присваиваем ссылку переменной :

my $ref = &test();

и разыменовываем ссылку на массив, тем самым получая содержимое массива :

my @arr_ref = @$ref;

Итоговая тестовый скрипт выглядит так :

#!/usr/bin/perl

use strict;
use warnings;

sub test { my @test = ("1", "2", "3", "4"); return \@test;};
my $ref = &test();
print "@$ref[1]"; # обращаемся к элементам массива напрямую из разыменованной ссылки

Также можно использовать операторы разадресования :

#!/usr/bin/perl

use strict;
use warnings;

sub test { my @test = ("1", "2", "3", "4"); return \@test;};
my @ref = @{&test()};
print "$ref[1]";

Tags: , ,

Leave a Reply