Mam zmiennej perl $results
, który pobiera zwrócony z usługi. Wartość ma być tablicą, a $results
powinno być odniesienie tablicą. Jednak, gdy tablica ma tylko jeden element w nim, $results
zostanie ustawiony na tę wartość, a nie odwołuje się tablicę zawierającą że jeden element.
Chcę zrobić foreach
pętlę na oczekiwanym tablicy. Bez sprawdzenia ref($results) eq 'ARRAY'
, czy jest jakiś sposób, aby mieć coś równoważne do następujących:
foreach my $result (@$results) {
# Process $result
}
Zwłaszcza że przykładowy kod będzie pracować dla odniesienia, ale skarżą się na prostym skalara.
EDIT: należy wyjaśnić, że nie ma dla mnie sposób, aby zmienić to, co jest zwracany z usługi. Problem polega na tym, że wartość będzie skalar, gdy istnieje tylko jedna wartość i będzie odwołanie do tablicy, gdy istnieje więcej niż jedna wartość.