in reply to use warnings and debug messages
Maybe disabling the warning locally is the less cumbersome solution:
(Or with the no warnings inside the debug function if you use the hash version).{ no warnings "uninitialized"; debug("x='$x', y= '$y'"); }
But actually, if the purpose is debug, being able to tell the difference between undef and the empty string is probably useful. Maybe with Data::Dump:
It also displays \r \n that might go otherwise unnoticed (eg: you have the two when you only expected \n)use v5.10; use warnings; use Data::Dump qw( pp ); sub debug { if (@_ > 1) { say pp { @_ }; } else { say pp $_[0]; } } my $x = 23; my $y; debug([$x, $y]); debug(x => $x, y => $y); debug("Hello"); debug("Hello\n"); __DATA__ [23, undef] { x => 23, y => undef } "Hello" "Hello\n"
Edit: corrected link to Data::Dump
|
|---|