@ARGV = ('--restart', Data::Dumper::Dumper(\%whatever)); exec( $^X, $0, @ARGV ); RESUME: #only if you really need to!