Something leads me to believe performance is the same with both (but Benchmark if you want to be sure). The reason would be readability. splice(@a, 0, 0, $val); is not even closely as readable as unshift(@$rc, $val);.
By the way, Perl is very efficient at adding to and removing from both the front and the end of arrays. That includes shift, unshift, push, pop, their splice equivalents, and probably $a[@a] = $val.
| [reply] [d/l] [select] |