Thread Einträge im Array löschen, auslesen, .. (16 answers)
Opened by Gast at 2005-11-21 12:35

sesth
 2005-11-21 14:29
#60269 #60269
User since
2005-02-01
181 Artikel
BenutzerIn
[default_avatar]
Hallo Ragnar,

hier noch eine Alternative. Zunächst solltest Du wissen, dass Arrays grundsätzlich mit @ beginnen. Die Werteliste wird mit () geklammert und nicht mit {}, da sonst eine Referenz auf einen Hash geliefert wird. Deshalb sieht Dein Array auch etwas anders im Code aus:
Code (perl): (dl )
1
2
3
4
my @Array1 = ('Nr;Name;Vorname;Strasse;Ort',
         '1;Bauer;Otto;Heuweg 1;Bonn',
         '2;Mueller;Mark;Holzweg 2;Berlin',
         '3;Schreiber;Stefan;Hochweg 3;München');

Mit der "shift"-Funktion wird von einer Liste (= Array) das erste Element geliefert und die Liste um das Element verkürzt. Da uns das erste Element nicht interessiert, wird das Ergebnis von shift einfach ignoriert:
Code (perl): (dl )
shift  @Array1;

In einer for-Schleife wird dann der Rest der Liste durchgegangen und mit einem regulären Ausdruck das letzte Element samt Semikolon entfernt.
Code (perl): (dl )
1
2
3
4
5
for (my $i = 0; $i <= $#Array1; $i++) {
    $Array1[$i] =~ s{(;[^;]+)$}{};
}

print $Array1[1];

$#Array1 liefert den Index des letzen Elements des Arrays. Die Lösung mit "map" ist eleganter - aber für einen Anfänger wohl weniger verständlich.
Gruß
Thomas

View full thread Einträge im Array löschen, auslesen, ..