Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12671[/thread]

Symboltabelle lokal ummappen



<< >> 3 Einträge, 1 Seite
LanX-
 2008-10-23 19:38
#115730 #115730
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Hi

ich weiß dass man mit Symboltabellen und Stashes wilde sachen machen kann, an die sich niemand mehr erinnern will. ;)

kann mir jmd sagen ob man eine Symboltabelle mit local auf eine anderen Tabelle aliasen kann?

danke
Rolf
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

package ding;
our $a="x";

package dong;
our $a="a";

sub show {
    print $a;
}

{
    local *dong::=*ding::;
    dong::show(); # soll "x" liefern, gibt aber "a"
}
moritz
 2008-10-23 19:53
#115732 #115732
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Wenn das, was du da probierst funktionieren würde, dann würde dong::show() nicht funktionieren, weil dong nach ding ge-alias-ed ist und es kein ding::show() gibt.

Allerdings weiss ich auch nicht wie es geht, sorry.
LanX-
 2008-10-23 20:10
#115733 #115733
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
hmm ...stimmt, man kommt nicht umhin show() zu einem lexikalischen code_ref zu machen...

Das Ummappen funktioniert übrigens prinzipiell, wenn man

Code (perl): (dl )
print eval '$a';


einfügt kommt "x" raus, die Bindung der anderen Variablen erfolgte
halt bereits zur Compilezeit
<< >> 3 Einträge, 1 Seite



View all threads created 2008-10-23 19:38.