Thread Best Practice? Modulvariablen mit oder ohne Modulpräfix (26 answers)
Opened by GwenDragon at 2024-07-05 14:48

haj
 2024-07-05 15:38
#196548 #196548
User since
2015-01-07
558 Artikel
BenutzerIn

user image
Ich verwende seit langer Zeit our und nicht mehr use vars. Das gibt es seit Perl 5.6. our kann nur dann zu Überraschungen führen, wenn man mehrere package-Deklarationen in einer Datei hat, und in dem seltenen Fall verwende ich die Syntax package P { ... } - dann sind die Überraschungen weg.

Bei der Nutzung von Modulvariablen nutze ich den Präfix nicht, wenn ich im gleichen Modul bin. Wenn man die Variable aus einem anderen Namensraum ansprechen will, muss man eh den Präfix angeben. Ich verlasse mich da auf die Tools, die mir bei Bedarf zeigen, wo die Variable deklariert ist.

use vars ist ein "Ausreißer", weil es sich nicht wie my, state und our an die Gültigkeitsbereiche der geschweiften Klammern hält, sondern tatsächlich für einen Namensraum wirkt. Deshalb würde ich eher sagen: VORSICHT vor use vars.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
package Test {

    our $DEBUG = 0;

    our %hash = (a => "Ah", );

    print $DEBUG;
}

$Test::DEBUG = 1;
print $Test::DEBUG;

Last edited: 2024-07-05 15:41:24 +0200 (CEST)

View full thread Best Practice? Modulvariablen mit oder ohne Modulpräfix