У меня проблемы с передачей аргументов в функцию, и вызываемая функция не возвращает управление обратно функции, которая ее первоначально вызывала.В основном, я читаю в текстовом файле, который содержит имена пользователей и пароли в массиве.Затем, используя цикл foreach, я передаю имя пользователя и пароль другой функции, но она никогда не возвращается и выполняется только для одного набора параметров;
sub batch {
open(my $in, "<", "$ARGV[0]") or die "Can't open $ARGV[0]: $!";
#Read file contents into an array.
@listOfUsers = <$in>;
foreach $listOfUsers (@listOfUsers) {
#Regex to check if txt file conforms to correct syntax.
if ($listOfUsers !~ /([a-zA-Z]{1}[a-zA-Z0-9]{3,40})\s[a-zA-Z]{1}[a-zA-Z0-9]{3,40}/) {
print "Please ensure that line $listOfUsers in $ARGV[0] is of the following syntax:\n";
print "\n<USERNAME> <PASSWORD>\n";
exit(0);
} else {
#split string and call AddUser function
my ($username, $password) = split(" ",$listOfUsers);
AddUser($username, $password);
}
}
}
sub AddUser {
exec("infacmd.sh createUser -dn domain -un user -pd pass -hp domain:80 -nu " . $_[0] . " -np " . $_[1] . " -nf test");
}
В принципе, не беспокойтесь о том, что делает функция AddUser.Он просто запускает какой-то файл .sh, который делает то, о чем я не беспокоюсь.В настоящее время я могу добавить только одного пользователя из файла, который я прочитал. Т.е. этот код работает только один раз и не возвращается к функции «batch».
Я попытался добавить 'return ()до конца функции AddUsers, но это не помогает
Спасибо