Thread Ausgabe User Daten (2 answers)
Opened by schiba1 at 2007-11-13 15:05

Siechfred
 2007-11-13 16:10
#102362 #102362
User since
2007-11-12
30 Artikel
BenutzerIn
[default_avatar]
Zum Verständnis meinerseits:

Code (perl): (dl )
1
2
3
4
foreach (keys %CustomerUserList) {
  my %User = $CommonObject{CustomerUserObject}->CustomerUserDataGet(User => $_);
  $CustomerUserList{$_} = $User{UserLocation} || '';
}


CustomerUserList enthält vermutlich eine Liste von Usern, die Du abfragen willst. Für jeden willst Du CustomerUserDataGet aufrufen, die abgefragten Daten speicherst Du in %User zwischen, verwendest aber nur UserLocation, sodass im Ergebnis in CustomerUserList jedem User eine Location zugewiesen ist. Willst Du den kompletten Hash verwenden, den CustomerUserDataGet liefert, wäre sowas möglich:

Code (perl): (dl )
1
2
3
4
foreach (keys %CustomerUserList) {
  my %User = $CommonObject{CustomerUserObject}->CustomerUserDataGet(User => $_);
  $CustomerUserList{$_} = \%User;
}


Zugriff:

Code (perl): (dl )
$CustomerUserList{$User}->{$Schluessel}


Selektiv würde auch gehen, indem Du bspw. ein Array mit den gewünschten Schlüsseln fütterst und das Ergebnis durchgehst:

Code (perl): (dl )
1
2
3
4
5
6
7
my @wanted = qw(UserLocation UID foo bar quox);
foreach my $mainkey (keys %CustomerUserList) {
  my %User = $CommonObject{CustomerUserObject}->CustomerUserDataGet(User => $mainkey);
  foreach my $subkey (@wanted) {
    $UserLocationList{$mainkey}->{$subkey} = $User{$subkey} || '';
  }
}


So in etwa, einfacher und eleganter geht's bestimmt auch :)

Siechfred

View full thread Ausgabe User Daten