use Term::ShellUI; unless( @ARGV ){ # open new shell and restart program my $cmd = join ' ', q(cmd.exe /c start ), qq{"$^X"},__FILE__,'dd'; system $cmd; exit; }