Apart from the fact that you're still not getting the OP's results, and you now (merely) generate a warning for the 1-element case, you're going through some rather silly gyrations to use @_ as an index instead of $#_. Using @_ as an index is still a bad idea, like using a screwdriver as a hammer. You might eventually get the result you want, but it's needlessly difficult.
Caution: Contents may have been coded under pressure.