While I admit to being very new to Perl - I find default/pre-defined variables to be a source of constant inspiration. Using $_ $@ $| etc. can really confuse things.
Oh yeah - and overuse $_ - superfluously if possible - as an example from my first attempt I submitted today:
in reply to Writing highly obfuscated code in Perl
(_ is a sub that returns the input++) and now you can use any of the following - all to get 4:
game(Wookie,opponent) eq 'Wookie' ? undef $problem : remove_limbs(arms,opponent);