In real terms, this is slightly longer than the previous version, isn't it? you need a space between print and the argument, I don't. Apart from that, this is different to the requirements. This prints out $l - 1, which is incorrect, or at least different to the 1-3 based original solution.
Trimming whitespace from the solution in my last post, and giving it a one character sub name makes it 112 characters, 107 if you take the quotes and braces around a A..C,pop
Strangely, using my $l=$_--
and using a(@_[0,2,1,3])
etc. doesn't work at all. @_ is not localised ($_3
ends up very negative and the solution becomes deeply recursive), which makes me wonder if the above solution works. I haven't compared the output to the original solution's output.