Leser: 22
1 2 3
# configManager property of host my $configManager = $host_view->configManager; print %$configManager;
2011-02-01T09:21:32 t3kkn0kr4t[...]
Also der Variablenpräfix ist hier %$. Bei Verwendung von "%configManager" bekomme ich eine Fehlermeldung. Kann mir einer die Hintergründe dazu erklären?
QuoteGenau genommen ist das zum Variablennamen gehörige Sigil hier lediglich das $, welches eine Skalarvariable bezeichnet.
2011-02-01T10:18:06 t3kkn0kr4tAlso ist @array dann keine Skalarvariable?
my @values = @hash{qw/key1 key2 key3/};
1 2 3 4 5
#!/usr/bin/env perl %test = "test123"; $link = "test"; print %$link, "\n";
Quote./testhash.pl
test123
2011-02-07T14:38:39 t3kkn0kr4t[...]
ist meinem Arbeitskollegen folgendes Snippet zur Veranschaulichung eingefallen:
Code (perl): (dl )1 2 3 4 5#!/usr/bin/env perl %test = "test123"; $link = "test"; print %$link, "\n";
[...]
Funktioniert und verwirrt...
1 2 3 4 5 6 7 8 9 10 11 12
use 5.012; use warnings; # Hash erzeugen my %test = ( test123 => undef ); # Hashreferenz erzeugen my $link = \%test; # Hashschlüssel und -werte ausgeben, # undefinierte Werte explizit durch leere # Zeichenketten ersetzen say map { $_ // '' } %$link;
my $link = { test123 => undef };
2011-02-07T14:38:39 t3kkn0kr4tSo, die Fragezeichen im Kopf sind etwas weniger. Zu dem Beispiel im OP und dem Script, welches ich hätte posten sollen, ist meinem Arbeitskollegen folgendes Snippet zur Veranschaulichung eingefallen: