On Mon, 25 Apr 2011 16:45:54 +0300, Alex Emergy wrote:

Ещё вопрос. Вот кукок кода который с горем пополам как-то получился:

sub ip_sub_menu {
     my $ips = $_[0];
     my @menu;
     foreach my $ip (@$ips) {
         my $hash;
         $hash->{'name'} = $ip;
         $hash->{'ip'} = $ip;
         push(@menu, $hash);
     }
     print Dumper(@menu);
}

На выходе я получаю:

$VAR1 = {
           'ip' => '192.168.11.5',
           'name' => '192.168.11.5'
         };
$VAR2 = {
           'ip' => '192.168.70.240',
           'name' => '192.168.70.240'
         };
$VAR3 = {
           'ip' => '212.248.72.98',
           'name' => '212.248.72.98'
         };

Что это? как я понимаю массив хэшей?

Если вам не нравится такой вывод Dumper,
попробуйте выводить

print Dumper \@menu;

или складывайте хеши, например, так

push @$menu, $hash;

print Dumper $menu;

Тогда что это?:

Должен получится

$VAR1 = [
           {
             'ip' => '192.168.3.3',
             'name' => '192.168.3.3'
           },
           {
             'ip' => '192.168.11.2',
             'name' => '192.168.11.2'
           },
           {
             'ip' => '192.168.11.3',
             'name' => '192.168.11.3'
           },
           {
             'ip' => '192.168.11.4',
             'name' => '192.168.11.4'
           }
         ];

Мне надо переписать код выше, чтобы он собрал данные в переменную в таком виде.


25.04.2011 17:28, Aleksander Gorohovski пишет:
On Mon, 25 Apr 2011 14:08:32 +0300, Alex Emergy wrote:

sub ip_sub_menu {
foreach my $ip ($_[0]) {
print Dumper($ip) . "\n";
}
exit;
}

Вывод:

$VAR1 = [
'192.168.11.5',
'192.168.70.240',
'212.248.72.98'
];

sub ip_sub_menu {
foreach my $ip ($_[0][0]) {
print Dumper($ip) . "\n";
}
exit;
}

Вывод:
$VAR1 = '192.168.11.5';

Что и требовалось доказать.

У Вас @_ содержит один элемент -> на массив.


--
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru

Дати відповідь електронним листом