Getopt::Long
библиотека - это стандартный Perl-способ обработки параметров командной строки.
Нечто подобное будет работать. Не проверено - будьте бдительны!
Обратите внимание, что поскольку ваши параметры PHP представляют собой сочетание параметров командной строки И некоторых неопознанных переменных, я разработал первый пример, чтобы ВСЕ возможные параметры были сохранены в хеше %args
(например, ваша программа должна использовать $args{procStartTime}
вместо $procStartTime
). Это позволило мне сделать его очень коротким и общим.
Если это трудно читать / понимать, у меня также есть второй пример, более простой, но менее общий
use Getopt::Long;
my @php_arg_order = qw(a h procStartTime i p reqlogfile
resplogfile un pw execDelay s);
my %args = map {$_ => ""} @php_arg_order;
$args{procStartTime} = "something";
$args{reqlogfile} = "a.log";
# More defaults for variables NOT passed in via command line.
# Populate them all in %args as above.
# Now load actual command line parameters.
GetOptions(\%args, map { "$_=s" } @php_arg_order) or die "Unknown parameter!\n";
system(join(" ",
"php", "loadAgent_curl.php",map { $args{$_} } @php_arg_order}, "&"));
Второй, менее продвинутый, но более прямой вариант:
use Getopt::Long;
my %args = ();
# Now load actual command line parameters.
GetOptions(\%args,
"NUM_AGENTS|a=s"
,"HOST_NAME|h=s"
,"USER_NAME|un=s"
# ... the rest of options
# The "XXX|x" notaion allows using alias "-x" parameter
# but stores in $args{XXX} instead for better readability
) or die "Unknown parameter!\n";
system("php loadAgent_curl.php $args{NUM_AGENTS} $args{HOST_NAME} $procStartTime $i $args{TARGET_PAGE} $reqlogfile $resplogfile $args{USER_NAME} $args{USER_PASS} $execDelay $args{COMMON_SID} &");