2012-01-07 5 views
1

Я использую Data :: Dumper для извлечения информации с сервера с помощью обмена сообщениями SOAP и нуждается в некоторой помощи при назначении возвращаемых значений для обработки. Мой код:Извлечение данных :: Элементы перемычки

my $cm = new SOAP::Lite 
encodingStyle => '', 
uri => "$axltoolkit", 
proxy => "https://$cucmip:$axl_port/axl/"; 

my $res =$cm->getUser(SOAP::Data->name('userid' => "387653")); 

unless ($res->fault) { 
    $Data::Dumper::Incident=3; 
    my($reply) = $res->paramsall(); 
    my ($devices) = $reply->{user}{associatedDevices}{device}; 
    print $devices->[0]."\n"; 
    print $devices->[1]."\n"; 
    print $devices->[2]."\n"; 

{устройство} может содержать любое количество элементов, так вместо вызова из $ устройств -> [0], [1], и т.д. - можно выплюнуть все возвращенные устройства ? Я пробовал $ _ и @_, но не повезло, так как он просто возвращает первое из устройств.

Любая помощь приветствуется.

Благодаря

+1

Просто применять «Использовать правило 1» от http://perldoc.perl.org/perlreftut.html#Using-References – tadmc

ответ

3

Вы имеете в виду

foreach my $device (@$devices) { 
    print "$device\n"; 
} 

?

Или более сжато

print "$_\n" foreach @$devices; 
+1

Или еще более лаконично 'сказать @ $ устройств; ':) –

+0

Спасибо за помощь. По какой-то причине первое предложение не сработало для меня, но второе - и все же проще использовать. «Превосходно! –

 Смежные вопросы

  • Нет связанных вопросов^_^