pl: Array in ein Hash wandeln.

Beitrag lesen

Guck Beispiel

# gegeben
my %hash = ();
$hash{breadcrumb}  = [ 
    { 
        'categoryName' => 'Fragen und Antworten', 
        'categoryUrl' => 'helpdesk.pl' 
    }, 
    {
        'categoryUrl' => 'helpdesk.pl?c=1', 
        'categoryName' => 'Allgemeines' 
    }
];

if( ref $hash{breadcrumb} eq 'ARRAY' ){
    print "In Hash umwandeln\n";
    
    my $tmp = {}; # hashref
    # wegen der besseren Lesbarkeit
    my @ar = @{$hash{breadcrumb}};
    while( my($i, $href) = each @ar ){
        my $k = 1 + $i;
        $tmp->{$k} = $href;
        shift;
    }
    $hash{breadcrumb} = ();
    $hash{breadcrumb}{1} = $tmp;
    print Dumper $hash{breadcrumb}, $tmp;
}
else{
    print "Kann so bleiben\n";
}

Der Umgang mit Referenzen ist Übungssache!

MfG