2 Stimmen

Was passiert bei der alternativen Deklaration von Strict-Pragmas in einem Perl-Skript?

Ich bin neu in Perl und probiere einen Beispielcode für mein Projekt aus. Was passiert, wenn ich einen Code wie unten angegeben schreibe, um strict pragmas in perl zu aktivieren.

streng verwenden;

....... #Quellcode .......

keine strengen "vars";

....... #Quellcode

streng verwenden #Sind alle Strict-Pragmas bis zur nächsten Pragma-Definition aktiviert?

......#Quellcode

keine strengen "Subs"; #Nur subs strict pragma wird deaktiviert und andere ab hier aktiviert?

...........

Kann ich die Verwendung von Strict Pragma-Deklarationen zwischen Quellcode einbetten?

2voto

Ed Guiness Punkte 33920

use strict ist lexikalisch skaliert, was bedeutet, dass es "bis zum Ende des einschließenden Blocks, der Datei oder des eval (je nachdem, was zuerst eintritt)" in Kraft bleibt.

2voto

zoul Punkte 99332

Ich denke, dass es am besten ist, die Pragma-Änderungen mit scope zu isolieren:

use strict;

{
    no strict;
    local $foo = 1;
}

local $bar = 1;

Dies explodiert bei der Einstellung bar , aber nicht auf foo .

1voto

Eugene Yarmash Punkte 130008

Von perldoc strict :

Wenn keine Importliste angegeben wird, werden alle möglichen Einschränkungen angenommen.

Sie können die zu beachtenden Punkte ("subs", "vars" und "refs") jederzeit ändern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X