Thread Alias einer Packagevariable mit *variable = \$THISVAR; (8 answers)
Opened by GwenDragon at 2024-07-08 12:19

GwenDragon
 2024-07-08 12:19
#196567 #196567
User since
2005-01-17
14783 Artikel
Admin1
[Homepage]
user image
Ich habe gerade ein Verständnisproblem mit der Perl-Symboltable und "Aliases" auf Variablen eines Package.

Es sei ein Package so ähnlich deklariert:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package TEST {

# Trenner bei Daten in Passwort-/Gruppendateien
our $DATA_SEPARATOR = q(::);
# Trenner bei mehrfachen Daten
our $DATA_SEPARATOR_MULTI = q(,);

*SPLITCHARS            = \$DATA_SEPARATOR;
*SPLITCHARS2           = \$DATA_SEPARATOR_MULTI;

sub test {
  if ( $blocked[$i] =~ /^\Q$user\E\Q$SPLITCHARS/ ) {
  }

};


Nun wirft mir Perl beim Compilecheck das für Zeile if ( $blocked[$i] =~ /^\Q$user\E\Q$SPLITCHARS/ ) {
Variable "$SPLITCHARS" is not imported at ...\TEST.pm line ....
Global symbol "$SPLITCHARS" requires explicit package name (did you forget to declare "my $SPLITCHARS"?) at ...

Ich will, dass über * quasi ein $SPLITCHARS erzeugt wird, das auf $DATA_SEPARATOR zeigt.

Wo denke ich falsch?
Last edited: 2024-07-08 12:56:54 +0200 (CEST)

View full thread Alias einer Packagevariable mit *variable = \$THISVAR;