Siechfred: Hash-Struktur dynamisch bilden

Beitrag lesen

OK, konnte es jetzt mit eval lösen... keine Ahnung ob das die geschickteste Lösung ist, aber es funkntioniert:

Ja, eval wäre eine Möglichkeit, eine andere wäre Rekursion. Mal ein kleines Beispielscript:

use strict;  
use Data::Dumper;  
  
my $str = 'SET_FOO_BAR_BAZ_BUM=42';  
my @hks = split /[=_]/, $str;  
shift @hks;  
my $ref = exec_cmd(\@hks);  
print Dumper $ref;  
  
sub exec_cmd {  
  my $ar = shift;  
  my $hr = shift || {};  
  my $key = shift @$ar;  
  $hr->{$key} = (@$ar == 1 ? $ar->[0] : {});  
  exec_cmd($ar, $hr->{$key}) if @$ar > 1;  
  return $hr;  
}

Was letztlich performanter ist, habe ich nicht getestet; perliger ist IMO meine Variante.

Siechfred

--
Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.