BEGIN { *CORE::GLOBAL::die = sub { CORE::die("$_[0]->{type}: $_[0]->{msg}\n"); }; *CORE::GLOBAL::warn = sub { CORE::warn("$_[0]->{type}: $_[0]->{msg}\n"); }; } warn { type => "warntest", msg => "missing point" }; die { type => "dietest", msg => "and I'm done" }; __output__ warntest: missing point dietest: and I'm done