Wolfgang Wiese: Löschen von Listenelementen

Beitrag lesen

Hi,

Hab da mal ne dumme Anfängerfrage:
Ich hab ne txt-Datei[Aufbau: "Name";"E_Mail";....], die ich als Hash einlesen möcht (1.wie mache ich das [ich weiss wie man den spass in ein Array schreibt aber bei nem Hash wills einfach nicht klappen, was ich auch probier]).

bei nem Hash brauchst du einen Key. ich nehm einfach mal an,
als Key wird der erste Wert der Zeile genommen.
Dann waere das so:

open(f1,"<$file") Fehlermeldung();
while(<f1>) {
   chomp($_);
   ($key, $rest) = split(/;/,$_,2);
   if ($key) {
     $hash{$key} = $rest;
   }
}
close f1;

Anschließend möchte ich einträge hinzufügen (stellt

kein weiteres Problem dar) bzw. auch löschen (2.wie
mache ich das, ohne dass ich die Liste umsortieren
und dann das letzte Element löschen muss)

bei nem hash alles kein problem:
Hinzufuegen:
$hash{'neuname'} = 'neuwert';

Loeschen (einfach):
$hash{$key} = "";

Aber Achtung: Ein hash ist von sich aus nicht sortiert!!

Wenn du es sortiert ausgeben willst (sortiert nach den Keys):

foreach $key (sort keys %hash) {
  print "$key\t$hash{$key}\n";
}

Ciao,
  Wolfgang