use strict; use warnings; use Win32; use Win32::Process; my $program = shift @ARGV or die "Usage: loader.pl program\n"; Win32::Process::Create($Win32::Process::Create::ProcessObj, 'd:\strawberry\perl\bin\perl.exe', #or wherever perl.exe is located "perl.exe $program", 0, DETACHED_PROCESS, '.') or die print_error(); sub print_error { return Win32::FormatMessage( Win32::GetLastError() ); }