PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wofür stehen die {ausdruck} ??


Codeq
16.05.2002, 21:48
Hi
bin grad am rumfummeln in nem source der sich mit unix sockets befasst, aber ich werd nicht aus zB so einer Zeile schlau


sub user_mod{
my($channel,$action,$mode,$user)=@_;
$channel = lc($channel);
$mode = "op" if $mode eq "o";
$mode = "halfop" if $mode eq "h";
$mode = "voice" if $mode eq "v";
if($action eq "+") {
$channels{$channel}{users}{$user}{$mode} = 1;
}else{
delete($channels{$channel}{users}{$user}{$mode});
}
}
die zeilen der letzten beiden bedingungen kapier ich ned so ganz.. was macht dieses {} ??


Jonas
16.05.2002, 23:28
Original von Codeq
$channels{$channel}{users}{$user}{$mode} = 1;
delete($channels{$channel}{users}{$user}{$mode}

Jetzt mal so auf die Schnelle, das werden wohl Mehrdimensionale Hashs sein.
Das heisst, es gibt einen Hash $channels, also $channes{coding-board.de}, $channels{andererChan} etc...
Allerdings steht an dieser Stelle kein Text oder so, sondern wiederum ein Hash, dessen Felder wiederum auch wieder Hash enthalten und so weiter ;)
Die erste Zeile würde also heissen: im Channel $channel die users, von diesen users den bestimmten $user, und dessen einstellung $mode auf 1 setzen.
2. Zeile heisst einfach, eben diesen Eintrag zu löschen...

Musst halt immer Unterscheiden, ob an dieser Stelle jetzt wiederum ein Hash oder Array, oder einfach nur ein String steht...

Codeq
16.05.2002, 23:31
oki
thx...