use subs 'system'; sub system { if ((@_ == 1) && ($_[0] =~ /(\S*)\s/) && (! -x $1) && (-x $_[0])) { $_[0] = "'$_[0]'"; } CORE::system @_; } my @cmd = "/cygdrive/c/Program Files/Microsoft Visual Studio .NET 2003/Common7/IDE/devenv.exe"; system(@cmd) and die $!;