Non preoccuparti per giocare a golf, il codice che avete sembra proprio bene (a parte le altre risposte sull'utilizzo defined
). Tuttavia, se ti ritrovi a ripetere questo schema, mi vengono in mente due cose.
Il primo è ovvio, il refactoring in una funzione di utilità, in modo da avere my @list = expand($hit).
La seconda domanda è un po 'più profondo - ma per me gli odori più di giocare a golf. L'intero punto degli iteratori è consumare quando ne hai bisogno, quindi se ti ritrovi a farlo spesso, sei sicuro che sia davvero la cosa giusta da fare? Forse stai spostando questi dati fuori dalla tua API, quindi sei vincolato alle scelte degli altri, ma se hai la possibilità di consumare un iteratore piuttosto che un elenco, forse questa sarà una soluzione più pulita.
Mostraci programmi di dimostrazione completi, in modo che possiamo vedere cose come come hai ottenuto $ hit. –