tieni presente che l'operatore di confronto "==" o "!=" in Perl si usa solo per i numeri, per le stringhe si usa "eq" e "ne".
il "next;" alla fine dell'ultimo elsif è inutile in quanto in ogni caso farebbe un altro ciclo se vi sono elementi rimanenti nell'array.
Infine non capisco cosa intendi quando dici che l'ultimo eslif va in loop !?!?!?
come fa un if o elsif ad andare in loop?