Можно ли заставить либо скаляр или массив Ref быть массивом в Perl?

у меня есть perl переменной $results, которые возвращаются из службы. Значение должно быть массивом и $results должен иметь ссылку на массив. Однако, если массив содержит только один элемент, $results будет равным этому значению, и не ссылается массив, который содержит один элемент.

я хочу сделать foreach петлю на ожидаемые массива. Без проверки ref($results) eq 'ARRAY', есть какой-нибудь способ, чтобы что-то эквивалентен следующему:

foreach my $result (@$results) {
    # Process $result
}

Что образец кода будет работать за ссылку, но будет жаловаться на простые скалярные.

EDIT: я должен пояснить, что нет никакого способа для меня, чтобы изменить то, что возвращается со службы. Проблема в том, что значение будет скалярного когда существует только одно значение, и это будет ссылку на массив, когда существует более чем одно значение.

Найдено 5 ответов:

Can you force either a scalar or array ref to be an array in Perl?

http://stackoverflow.com/questions/3112/can-you-force-either-a-scalar-or-array-ref-to-be-an-array-in-perl

Посмотреть решение →