Thread Innerhalb Hash Def auf Keys zugreifen (42 answers)
Opened by bianca at 2013-09-08 06:08

frankes
 2013-09-08 08:04
#169986 #169986
User since
2005-04-02
140 Artikel
BenutzerIn

user image
Deklariere %test einfach eine Zeile früher.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
my %test = ();
%test = (
    foo     => 'bar',
    test    => $test{foo},
);
print "'$test{test}'\n";


edit:

Okey, so einfach lässt er sich wohl nicht überzeugen.
Es ist nun halt nicht festgelegt, in welcher Reihenfolge perl die hash Variablen beim Ausführen setzt.


Allerdings verstehe ich das Ziel deines Codes auch nicht, da das gleiche Ergebnis ja mit
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
my %test = ();
%test = (
    foo     => 'bar',
    test    => 'bar',
);
print "'$test{test}'\n";


erreichbar ist.

Vielleicht meintest du ja eher so was wie
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
use strict;
use warnings;

my %test = ();

$test{foo}    = \do{my $bar = 'bar'; };
$test{test}   = $test{foo};

print ${$test{test}},"\n";
print ${$test{foo}},"\n";


${$test{foo}} = 'foobar';

print ${$test{test}},"\n";
print ${$test{foo}},"\n";


wo beim ändern eines Schlüsselwertes beide gleich bleiben.
Last edited: 2013-09-08 09:26:34 +0200 (CEST)

View full thread Innerhalb Hash Def auf Keys zugreifen