Help for this page
@ARGV = ('--restart', Data::Dumper::Dumper(\%whatever)); exec( $^X, $0, @ARGV ); RESUME: #only if you really need to!
if ($ARV[0] eq '--restart') { %whatever = %{ eval $ARGV[1] }; goto RESUME; #only if you really need to! }