in reply to "warn" is your best friend

Actually I find a good IDE, breakpoints and variable contents viewing a lot more powerful and much faster than any sort of print/warn/::diag/Carp/... based technique. Even the Perl command line debugger is vastly quicker for resolving issues than any print based technique (I used Perl's command line debugger for the first time in 3 years yesterday and was sufficiently up to speed with it in 10 minutes).

I use Carp for reporting bad states (unexpected parameters for example) and die for exception handling internally. Those often point to areas where a little debugging is required, but then it's set a breakpoint and inspect the state directly - even changing variable contents on the fly to explore issues further. For me with, any half decent development environment available, print based debugging stopped 30 years ago.

If the code changes take longer than the time saved, it's fast enough already.