Verwendung von nicht initialisierten Wert in substitution (s///) Fehler in PERL
Ich bin nicht verwendet, um Perl-hatte aber zum erstellen dieser Funktion.
sub getPrice {
my $url = shift;
my $prdid = shift;
my $count = shift;
my $totcount = shift;
print "($count/$totcount) Fetching Product Price : $prdid .";
my $rs = sendRequest('GET', $url);
print "url :".$url;
print "..\n";
$rs =~ s!.*Unit Price Excl. VAT!!s;
$rs =~ s!</table>.*!!s;
$rs =~ m!([0-9,]+) +EUR!;
$rs = $1;
$rs =~ s/,/./;
return $rs;
}
Wenn ich diese Funktion aufrufen, bekomme ich diesen Fehler.
Use of uninitialized value in substitution (s///)
Den Fehler Punkte aus der $rs =~ s/,/./;
Linie.
Ist es ein Fehler in der Art, wie ich bin, ihn zu ersetzen??
Die $url-Wert, der gültig ist.
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn $rs nicht definiert ist, dann muss es sein, weil das match "
$rs =~ m!([0-9,]+) +EUR!;
" fehlgeschlagen verlassen$1
undefiniert. Hinzufügen einige strategische print-Anweisungen sollten helfen.Wenn der Fehler an der Zeile
dann
sendRequest
fehl, was zu$rs
wird nicht definiert.Könnte der Fehler auch auf der Linie der letzten substitution, was bedeutet, dass das Vorherige match gescheitert. Wickeln Sie das match in einer bedingten Anweisung um sicher zu sein.