私の主なPerlプログラムから次のスクリプトを呼び出しています。スクリプトはプロセス名を取り、PIDを返します。 スクリプトが必要とキーワード使用して、私のメインのPerlコードに含まれている:Perlの警告と正規表現に関する問題regexpコンパイルでの初期化されていない値の使用
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のregexpコンパイルで初期化されていない$ procNameの使用19
残りのスクリプトは正常に機能しているようです。 $ procNameは$ procName = & _ [0]によって初期化されていると私は理解しています。
私はデバッグのためにprintステートメントを入れました。$procName
は値を返して初期化されます。なぜ私はこれらの警告を得ているのか誰にも分かりますか?
ありがとうございますこれは問題を解決しました –
この回答を「受け入れる」のはなぜですか?それは完璧です。 – reinierpost