in reply to I need a "non-trivial" bug for my script!

I often create function (method) stubs along the lines of:
sub my_method { shift->{some_parm} }
Sometimes, the function, takes more parameters. Recently I made the mistake of doing something like this:
sub my_method { shift->{shift} }
The idea was to use the second parameter as a key to the hash ref in the first parameter. But instead I got the literal 'shift' as a key. The code should have been:
sub my_method { shift->{shift()} }
Took me a while to find that one and no amount of staring at it made it any easier to find.