sub find_parameters { my $input = $_[0]; if($input =~ /^(.+?\.\w{3})$/){ print "only one executable: $input\n"; }elsif($input =~ /^(.+?\.\w{3})( +)([\/\-].+)$/ && -f $1 ){ print "$1 with parameters $3\n"; }elsif($input =~ /^“(.+)”$/){ # strip quotes and parse again find_parameters($1); }else{ print "not parsed: $input\n"; }; };