Ich rufe das folgende Skript aus meinem Perl-Programm. Das Skript erhält einen Prozessnamen und gibt seine PID zurück. Das Skript ist in meinem Haupt-Perl-Code enthalten, indem Sie die benötigen Schlüsselwort:Problem mit Perl Warnungen und Regex Verwendung von nicht initialisierten Wert in Regexp Kompilierung
require "getPid.pl";
und rief mit:
&pidGetter($processName);
getPid.pl ist:
#!/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;
}
Wenn jedoch Das Skript wird aufgerufen, ich bekomme folgende Warnung:
Verwendung von nicht initialisierten Wert $ procName in regexp Kompilation bei getPid.pl Linie 19
Der Rest des Skripts scheint gut zu funktionieren. Ich verstehe, dass $ procName von $ procName = & _ [0] initialisiert wird;
Ich habe drucken Anweisungen zum Debuggen, und $procName
gibt einen Wert zurück, so dass es initialisiert wird. Weiß jemand, warum ich diese Warnungen bekomme?
Vielen Dank das hat das Problem gelöst –
Warum akzeptieren Sie diese Antwort nicht, es ist perfekt. – reinierpost