Я вызываю следующий скрипт из моей основной программы Perl. Сценарий берет имя процесса и возвращает его PID.
Сценарий включен в мой основной Perl-код, используя ключевое слово require:
require "getPid.pl";
и вызывается с помощью:
&pidGetter($processName);
getPid.pl:
#!/usr/bin/perl -w
use strict;
use warnings;
use Proc::ProcessTable;
pidGetter($ARGV[0]);
sub pidGetter
{
my $ret="PROCESS ID NOT FOUND\n";
my $t = new Proc::ProcessTable;
my $procName = $_[0];
foreach my $p (@{$t->table})
{
if ($p->fname =~ /$procName/)
{
$ret = $p->pid;
}
}
return $ret;
}
Однако, когда вызывается скрипт, я получаю следующее предупреждение:
Использование неинициализированного значения $ procName при компиляции регулярного выражения в строке getPid.pl 19
Остальная часть скрипта работает нормально.
Насколько я понимаю, $ procName инициализируется $ procName = & _ [0];
Я добавил операторы print для отладки, а $procName
возвращает значение, поэтому оно инициализируется. Кто-нибудь знает, почему я получаю эти предупреждения?