【发布时间】:2010-12-24 11:21:18
【问题描述】:
我正在从我的主 Perl 程序中调用以下脚本。该脚本采用进程名称并返回其 PID。 该脚本使用 require 关键字包含在我的主要 perl 代码中:
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;
}
但是,当调用脚本时,我收到以下警告:
在 getPid.pl 第 19 行的正则表达式编译中使用未初始化的值 $procName
脚本的其余部分似乎运行良好。 据我了解 $procName 是由 $procName = &_[0];
初始化的我已经放入了打印语句来调试,$procName 确实返回了一个值,所以它被初始化了。有谁知道我为什么会收到这些警告?
【问题讨论】:
标签: regex perl warnings initialization