sub debug { warn join '', map $_ // '', @_, "\n"; } # and then... debug "x=", $x, " y=", $y; #### sub debugf { my $fmt = shift; warn sprintf($fmt, map $_ // '', @_) . "\n"; } debugf "x=%s y=%s", $x, $y; # <-- always using %s!