my_script.pl --option1 --option2 --job some_job.pl -option1 --option2 --option3 #### my $job_flag = 0; foreach my $i (0..$#ARGV) { ​$opt{"job"} .= $ARGV[$i]." " if($job_flag); ​$job_flag = 1 if($ARGV[$i] =~ /^(\-\-|\-)job$/); ​undef $ARGV[$i] if($job_flag); } #### my_script.pl --option1 --option2 --job some_job.pl -option1 'some_job2.pl -x abc' -option2 #### $VAR1 = [ '--option1', '--option2', '--job', 'some_job.pl', '-option1', 'some_job2.pl -x abc', '-option2' ]; #### $VAR1 = [ '--option1', '--option2', '--job', 'some_job.pl', '-option1', '\'some_job2.pl -x abc\'', '-option2' ];