top-shop.ru
Набор стаканов Cerve
Передача и извлечение хэша Perl на примере.

Как передать хэш в подпрограмму Perl. Как передать хэш в функцию Perl.

Хэши (ассоциативные массивы) в Perl очень удобная штука для решения многих задач, но передавать в подпрограммы их следует специальным образом (см. пример).

Первой приведена тестовая программа, заполняющая хэш и передающая его в подрограмму test.

my $a = "A";
my $b = "B";


%hash1 = (
    'one' => '0',
    'two' => '3',
    'three' => '4');

test($a, $b, \%hash1);
exit 0;
Код подпрограммы Perl, принимающей в качестве одного из своих аргументов хэш (точнее REFERENCE хэша) приведен ниже.
sub test {

my $A = shift;
my $B = shift;

   print $A."\n";
   print $B."\n";

my %hash = %{shift()};

while (@Res = each %hash){
        print "$Res[0] = $Res[1]\n"
}

}
Блог администратора/программиста

Содержание