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.
- pc-einsteigerkurs (11x gelesen)
- datenschutz (9x gelesen)
-
http://www.amazon.de/gp/product/B005N82HDC/ref=as_li_ss_tl?ie=UTF8&tag=computerhilfen&linkCode=as2&camp=1638&creative=19454&creativeASIN=B005N82HDC
(7x gelesen) -
http://www.amazon.de/gp/product/B005N82HDC/ref=as_li_ss_tl?ie=UTF8&tag=computerhilfen&linkCode=as2&camp=1638&creative=19454&creativeASIN=B005N82HDC
(7x gelesen) - pc-einsteigerkurs-4-4 (7x gelesen)
Mehr Tipps zu Lösung: Bareword not allowed while ...
-
MacBook Touch-Bar aus oder reagiert nicht: Lösung!
Apple hatte bei einigen MacBook Modellen die obere Tasten-Leiste gegen einen kleinen Touch-Screen getauscht: Die TouchBar. Sie ließ sich je nach App personalisieren, nervte die...
-
Lösung: Das bedeuted der grüne / orange Punkt oben im iPhone Display!
Wird oben im iPhone Display ein grüner oder orangener Punkt angezeigt, meldet das iPhone einen Mikrophon- oder Kamera-Zugriff einer App. Seit iOS 14 meldet ein...
-
Lösung: “Uncaught TypeError: string.includes is not a function”
Mit der Javascript-Methode "includes" kann man einen String durchsuchen und feststellen, ob ein Suchbegriff enthalten ist. Dies setzt allerdings voraus, dass die Suchwörter nur Strings...
-
Lösung: “Uncaught TypeError: string.indexOf is not a function”
Mit den beiden Methoden "indexOf" und "includes" kann man mit Javascript einen String durchsuchen und feststellen, ob ein Suchbegriff enthalten ist. Da funktioniert in der...
-
Umschalt-Taste am Laptop: Hier ist die Taste am Notebook!
Die Umschalt-Taste (auch aus dem englischen Shift-Taste genannt) gibt es normalerweise zwei Mal auf der Tastatur. Auch auf den meisten Notebook- und Laptop-Tastaturen ist sie...
Lösung: Bareword not allowed while "strict subs" in use at line ...