Я имею дело с SOAP API, который может возвращать хеш или массив хэшей в зависимости от того, есть ли одна или несколько записей. Это усложняет повторение возврата. Мой текущий метод - проверить ссылку возврата и либо скопировать ее в массив, если это массив, либо поместить ее в массив, а затем выполнить итерацию по ней. Есть ли более чистая идиома для использования?
my @things;
if ( ref $result->{thingGroup} eq 'ARRAY' ) {
@things = @{ $result->{thingGroup} };
} elsif ( ref $result->{thingGroup} eq 'HASH' ) {
push @things, $result->{thingGroup};
}
foreach my $thing (@things) { ... }