use strict; use warnings; use File::Basename; my @args = ("start/d", "c:/program files/T.txt"); my $file = pop(@args); push (@args, '"'. dirname($file) . '"', basename($file)); system(@args) == 0 or die $@;