in reply to array splice vs hash splice

It's actually a "slice". @ is used because the returned value is a list. (A hash is not really printable in its native form - only the associated list is printable in a way readable by humans. That's probably why hashes don't interpolate in double quoted strings - it doesn't make much sense.)
chas