2016-12-11 1 views
1

„Verwendung von nicht initialisierten Wert $ str1 in String eq bei ./script.pl Linie 20“Perl Verwendung von nicht initialisierten Wert in String

nicht sicher, warum ich diesen Fehler auf der Leitung 20, wenn ich 20 aus kommentieren, es geht weg:

15 ######## HELP section ################ 
16 # 
17 our @ARGV; 
18 our ($str1, $str2) = @ARGV; 
19 
20 if ($str1 eq "help") { &help(); } 
21 
22 if (!$str1) { &help(); } 
23 # 
24 sub help { 
25   print <<EOF; 
26   +++++++++++++++++++++++++++++++++++++++++++++++++++ 
27   + usage: $0 "cmd1,cmd2,cmd3" "host1,host2,host3" 
28   +++++++++++++++++++++++++++++++++++++++++++++++++++ 
29 EOF 
30   exit 0; 
31   } 

Antwort

2

Es ist kein Fehler, es ist eine Warnung. Das bedeutet, dass "$ str1" nicht initialisiert ist. In diesem Fall wurden keine Befehlszeilenargumente für das Skript angegeben.

Merge Linien 20 und 22 in

help() if ! $str1 || $str1 eq 'help'; 
+0

ty, gelöscht Ihre Lösung den Fehler, aber es war nicht mehr als $ str1 initialisiert durch "unsere ($ str1, $ str2) = @ARGV;" ? – rtep

+0

@rtep: Nur wenn '@ ARGV' nicht leer war, d. H. Es gab einige Befehlszeilenparameter. – choroba

Verwandte Themen