sub mm_sprintify { my($message, @values) = @_; return($message) unless(@values); for(my $i = 0; $i < @_; $i++) { given($values[$i]) { when(undef) { $values[$i] = "< undef >"; } when(blessed($_)) { $values[$i] = sprintf("[%s\@0x%x]", blessed($_), refaddr($_)); } when(ref($_) eq 'HASH') { $values[$i] = Dumper($_); } } } return(sprintf($message, @values)); }