my %data1 = (); unless (open (FH1, $file1)) {  die ".....: $!\n"; } while () {  chomp($_);  my ($key, $value) = split(/\s*=\s*/, $_, 2);  $data1{$value} = $key; } close (FH1); my %data = (); unless (open (FILE2, $file2)) {  die "Error in opening '$file2': $!\n"; } else {  local $/; # alles auf einmal einlesen  my $content2 = ;  close (FILE2);  $content2 =~ s/(^\s+|\s+$)//; # whitespace am anfang und ende killen  # aufsplitten nach \n[....]\n und [...] auch speichern; ok, man koennte es  # wohl auch direkt in einem hash speichern, aber so ist es fehlertoleranter  my @content = split(/\n(\[.+?\])\s*\n/, $content2)  my $key;  foreach my $entry (@content) {    if ($entry =~ /\[(.+)\]/) { # ueberschrift [...] feststellen      $key = $1;      next;    }    else { # muss der rest sein      foreach my $line (split(/\n/, $entry)) { # nach zeilen aufteilen        my ($subKey, $value) = split(/\s*=\s*/, $line, 2); # line nach = aufsplitten        # hier waere vielleicht eine ueberpruefung auf existenz nicht schlecht        %data{$key}->{$subKey} = $value;    } # foreach $line  } # foreach $entry } # else # ausgeben foreach my $key (keys %data) {  print "[$data1{$key}]\n";  print "IP_GATEWAY = $data{$key}->{GATEWAY}\n";  print "VMAC =   $data{$key}->{MACPREFIX}$data{$key}->{MAC}\n";  # ...  print "\n"; } # foreach $key