Werte aus einer Feldwertliste anderen Attributen zuordnen

Datum: 2006-02-15
Quelle: suse-programming

Worum ging es?

Die Werte aus einer Liste mit dem Format feld1;wert1;feld2;wert2;feld3;wert3; sollen anders lautenden Attributen zugeordnet werden.

Code
#! /usr/bin/perl
use strict;
use warnings;
my %ldif = ("feld1" => "attribute1",
            "feld2" => "attribute2",
            "feld3" => "attribute3");
my $line = "feld1;wert1;feld2;wert2;feld3;wert3;";
my %out = ();
my @f = split /;/, $line;
for (my $i = 0; $i < $#f; $i+=2) {
  my @a = ($ldif{$f[$i]}, $f[$i+1]);
  $out{$f[$i]} = \@a;
}
foreach (sort keys %out) {
  my $aref = $out{$_};
  print $_, " = ", @$aref[1], " ---> ", @$aref[0], " = " , @$aref[1], "\n";
}
exit 0;
Beschreibung

Das Beispiel arbeitet mit einem Hash, der die Zuordnung zwischen den Feldnamen aus der Eingangsliste und den Attributnamen in der Ausgabe enthält.