Mam zmienną perl $results
, która jest zwracana z usługi. Wartość ma być tablicą, a $results
powinna być odwołaniem do tablicy. Jeśli jednak w tablicy znajduje się tylko jeden element, $results
zostanie ustawiona na tę wartość, a nie tablica, do której odwołuje się ten jeden element.Czy możesz zmusić skalar lub tablicę, aby była tablicą w Perlu?
Chcę wykonać pętlę foreach
dla oczekiwanej tablicy. Bez sprawdzania ref($results) eq 'ARRAY'
, czy jest jakiś sposób, aby mieć coś równoważna następującej:
foreach my $result (@$results) {
# Process $result
}
Że szczególności przykładowy kod będzie pracować dla odniesienia, ale skarżą się na prostym skalara.
EDYCJA: Należy wyjaśnić, że nie ma sposobu, aby zmienić to, co jest zwracane z usługi. Problem polega na tym, że wartość będzie skalarem, gdy istnieje tylko jedna wartość i będzie to odwołanie do tablicy, gdy istnieje więcej niż jedna wartość.
Takie zachowanie sprawia, że chcę krzyczeć i być jak "Stupid PERL!" Ale potem zdaję sobie sprawę, że języki, które nie wymagają tego nonsensu wciąż robią to pod maską, co sprawia, że dręczy mnie nieco mniej ... – Rooster