linux-l: 3 Fragen zu perl und hashes
Ulrich Wiederhold
U.Wiederhold at gmx.net
Fr Aug 31 23:10:51 CEST 2001
Hallo Rene,
danke für die Hilfe.
* Rene Dietze <rene at endel-dietze.de> [010831 22:03]:
> Ulrich> 1. Ich habe ein Array mittels einer Referenz einem Hash
> Ulrich> zugeordnet, so daß ich mittels "@{$config{'array'}}" auf
> Ulrich> das Array zugreifen kann. Wenn in dem Array 5 elemente
> Ulrich> sind (element1, element2, element3, element4, element5),
> Ulrich> wie kann ich dann z.B. element3 löschen?
>
> splice(@{$config{'array'}},2,1);
Ich sollte wirklich lernen, Fragen zu stellen.
In dem Fall weiß ich, daß das zu löschende Element an Position 3
steht. Wenn ich das aber nicht weiß ?
Ich nutze zur Zeit folgendes, was ziemlich umständlich ist:
foreach my $chan (@{$config{'channels'}}) {
$chan eq $input[2] and do { # $input[2] ist die Eingabe, die gelöscht werden soll
};
$chan ne $input[2] and do {
push(@between,$chan);
};
}
@{$config{'channels'}} = "";
@{$config{'channels'}} = @between;
*****
@{$config{'channels'}} enthält ('#a','#b','#c','#i','#s','#sxdg','#dsldkf');
Angenommen $input[2] enthält '#s', wie kann ich das einfach entfernen?
> hmmm was meinst du damit einem key im hash %config dann
> delete $config{'key'};
Yep. Typo, sorry.
> for (@{$config{'array'}})
> {
> print $_."\n";
> }
Ist da for schneller als foreach? Wofür ist da der . da? Weils ein
String als Ausgabe ist? Also zum Verknüpfen?
> die syntax @{ } macht das gleiche wie @$
Hmm, ich habe gerade über 20 Seiten komplett auf ein hash umgestellt...
da hätte ich mir ne Menge Tipperei ersparen können. Außerdem wird mir
jetzt ein Teil einer Perl-Doku klarer...
Danke nochmal, vielleicht fällt Dir ja zu meinen Rückfragen auch noch
was ein?
Gruß
Uli
--
'The box said, 'Requires Windows 95 or better', so i installed Linux - TKK 5
Mehr Informationen über die Mailingliste linux-l