or download this
sub ::D { require Data::Dumper; return Data::Dumper::Dumper(@_) }
sub ::DD { require Carp; Carp::confess(::D(@_)) }
# later, call it like this:
print ::D({ current_state => $state }); # debug print
::DD($state); # dump, stack trace, die.