1 2 3 4 5 6 7 8 9 10 11
package Test; use vars qw( $DEBUG $option %hash ); $Test::DEBUG = 0; %Test::hash = (a => "Ah", ); print $Test::DEBUG; 1;
1 2 3 4 5 6 7 8 9 10 11
package Test; use vars qw( $DEBUG $option %hash ); $DEBUG = 0; %hash = (a => "Ah", ); print $DEBUG; 1;
1 2 3 4 5 6 7 8 9
package Test; our $DEBUG = 0; our %hash = (a => "Ah", ); print $DEBUG; 1;
1 2 3 4 5 6 7 8 9
package Test; $DEBUG = 0; %hash = (a => "Ah", ); print $DEBUG; 1;
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;
QuoteWelche?Ich verlasse mich da auf die Tools, die mir bei Bedarf zeigen, wo die Variable deklariert ist
2024-07-05T15:59:52 GwenDragonQuoteWelche? [...]Ich verlasse mich da auf die Tools, die mir bei Bedarf zeigen, wo die Variable deklariert ist
1 2 3 4 5 6
$self = { foobar => $Foo::bar, name => $Egal::Name, vname => $Egal::Vorname, debug => $Diag::Debug };
2024-07-06T13:27:35 rostiAlso ich finde Klassenvariablen nur bedingt sinnvoll. Und nur dann wenn deren Wirkung in jedem Programmabschnitt sofort sichtbar und nachvollziehbar ist.
2024-07-06T13:27:35 rostiDas Problem mit Klassen-Variablen ist
QuoteDie Bezeichnung Klassen-Variablen macht Sinn in objektorientierten Modulen.
1 2 3 4 5 6 7 8 9
use strict; use warnings; $foo::number = 0; count() for 1..3; sub count{ print ++$foo::number, "\n"; }
$Zombie::foo = 123;
1 2 3 4 5 6 7 8 9 10 11 12 13 14
use strict; use warnings; count() for 1..3; print ende(); sub count{ $foo::number = defined $foo::number ? $foo::number : 0; print ++$foo::number, "\n"; } sub ende{ return $foo::number }