Lösung: Bareword not allowed while “strict subs” in use at line …
In Perl kann man Variablen ganz einfach einen Wert zuweisen. Nutzt man allerdings “strict”, ist dies etwas umständlicher: Dafür wird die Nutzung logischer, denn Perl trennt so zwischen einer direkten Variablen-Zuweisung und einer Funktion.
Ohne “use strict” könnte man den Text “test” ganz einfach so einer Variablen zuweisen:
my $var = test;
Startet man das Skript allerdings mit “use strict”, geht das nicht: Ein String muss dann in Anführungszeichen gesetzt werden, um einer Variable zugewiesen zu werden:
use strict; my $var = "test";
Das ist wichtig, da man sonst auch die Rückgabe der Funktion test der Variablen $var zuweisen könnte, wenn diese vor der Zuweisung definiert wurde. Durch “use strict” und dem Zuweisen des String-Wertes über die Anführungszeichen wird das deutlicher und kann sonst schwer erklärbare Fehler vermeiden. Allerdings führt der Code OHNE Anführungszeichen zu einer Fehlermeldung:
use strict; my $var = test;
Perl würde hier diesen Fehler ausgeben:
Bareword test not allowed while “strict subs” in use at line 2
Der Fehler kann aber auch vorkommen, wenn ganz einfach nur das $ Zeichen vor dem Variablennamen vergisst: Auch dann denkt der Perl Interpreter, dass man einer Variable einen Text zuweisen möchte:
my $var2 = 'test'; my $var1 = $var2;
Vergisst man in der zweiten Zeile das $-Zeichen, würde der Code so aussehen:
my $var2 = 'test'; my $var1 = var2;
Auch dieser kleine Fehler sorgt dafür, dass die Meldung ‘Bareword var2 not allowed while “strict subs” in use at line 2‘ gezeigt wird: Durch die Fehlermeldung findet man aber auch die Zeile, in der der Fehler auftritt: So kann man den Fehler eingrenzen und korrigieren.
- stack ovberflow at line 206
Hallo und gruss.Habe windows xpimmer wieder kommt das Fenster mit inhalt: stack overfloor at l...
- Doppelte Line im Inhaltsverzeichnis
- Mikrofon / Line in funktioniert nicht
Bisher habe ich für Skype/Teamspeak als Aufnahmegerät "Mikrofon / Line-In (IDT High Definitio...
- [Java] Scanner.nextLine() - No Line Found
Hi Leute,ich habe gerade mit Java angefangen und eigne mir sehr viel durch "learnin...
- pc-einsteigerkurs-3-1 (2x gelesen)
- pc-einsteigerkurs-5-4 (1x gelesen)
- pc-einsteigerkurs-1-3 (1x gelesen)
- windows-beschleunigen (1x gelesen)
- pc-einsteigerkurs (1x gelesen)
Mehr Tipps zu Lösung: Bareword not allowed while ...
- Keine verwandten Beiträge gefunden.
Lösung: Bareword not allowed while "strict subs" in use at line ...