[Perl] - Array in Perl verstehen - Druckversion +- Joopi (https://forum.hermann-splitthoff.de) +-- Forum: Wissenswertes (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=1) +--- Forum: Programmieren (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=6) +--- Thema: [Perl] - Array in Perl verstehen (/showthread.php?tid=445) |
Array in Perl verstehen - Joopi - 06-04-2024 In einem Perl-Skript ist @ING eine Array-Variable. Diese Variable kann mehrere Werte aufnehmen und speichern. Arrays werden in Perl durch ein vorangestelltes '@'-Zeichen gekennzeichnet. Deklaration eines leeren Arrays: Code: my @ING; Zuweisen von Werten zu einem Array: Code: @ING = (1, 2, 3, 4, 5); Zugriff auf Elemente eines Arrays: Code: print $ING[0]; # Gibt das erste Element des Arrays aus Hinzufügen eines Elements zu einem Array: Code: push @ING, 6; # Fügt das Element 6 am Ende des Arrays hinzu Iteration über die Elemente eines Arrays: Code: foreach my $element (@ING) { In diesem Fall ist @ING einfach eine Variable, die als Array verwendet wird. Der Name @ING könnte beliebig sein und wurde in Ihrem Skript wahrscheinlich entsprechend verwendet, um bestimmte Daten zu speichern oder zu verarbeiten. Um ein bestimmtes Element aus einem Array in Perl anzusprechen, verwenden Sie den Index dieses Elements in eckigen Klammern nach dem Arraynamen. Hier sind einige Beispiele: Code: my @array = ('a', 'b', 'c', 'd', 'e'); Das erste Element des Arrays (Index 0) ansprechen und ausgeben Code: print $array[0]; # Ausgabe: 'a' Das dritte Element des Arrays (Index 2) ansprechen und ausgeben Code: print $array[2]; # Ausgabe: 'c' Das letzte Element des Arrays ansprechen und ausgeben Code: print $array[-1]; # Ausgabe: 'e' Sie können auf ein Element in einem Array zugreifen, indem Sie den Index des Elements in eckigen Klammern nach dem Arraynamen angeben. Beachten Sie, dass die Indizierung in Perl bei 0 beginnt, sodass das erste Element des Arrays den Index 0 hat, das zweite den Index 1 usw. Sie können auch negative Indizes verwenden, um von hinten zu zählen, wobei -1 das letzte Element des Arrays ist, -2 das vorletzte usw. Um das dritte Element aus dem Array @ING zu entfernen, können Sie die splice-Funktion verwenden. Hier ist, wie Sie das machen können: Code: my @ING = (1, 2, 3, 4, 5); Die splice-Funktion wird verwendet, um Elemente aus einem Array zu entfernen und/oder neue Elemente einzufügen. In diesem Fall entfernen wir 1 Element aus dem Array @ING ab dem Index 2 (0-basiert, das dritte Element) mit splice(@ING, 2, 1). Um den Namen 'Detlef' aus dem Array @ING zu entfernen, können Sie die grep-Funktion verwenden, um alle Elemente außer 'Detlef' zu behalten. Hier ist, wie Sie das machen können: Code: my @ING = ('Herbert', 'Werner', 'Detlef', 'Hans'); In diesem Beispiel verwenden wir grep, um alle Elemente des Arrays @ING beizubehalten, die nicht 'Detlef' sind. Das Ergebnis wird dann zurück in das Array @ING gespeichert. Nach diesem Vorgang wird 'Detlef' aus dem Array entfernt sein. Hier ist die Verwendung der splice-Funktion, um den Namen 'Detlef' aus dem Array @ING zu entfernen: Code: my @ING = ('Herbert', 'Werner', 'Detlef', 'Hans'); In diesem Beispiel wird der Index des Namens 'Detlef' im Array @ING ermittelt, und dann wird die splice-Funktion verwendet, um das Element an diesem Index zu entfernen. Wenn der Name nicht im Array gefunden wird, wird nichts entfernt. Dieser Ansatz ermöglicht es Ihnen, gezielt ein bestimmtes Element aus dem Array zu entfernen. In der splice-Funktion gibt der dritte Parameter die Anzahl der Elemente an, die ab dem angegebenen Index aus dem Array entfernt werden sollen. Also bedeutet splice(@ING, $index, 1);, dass ab dem Index $index im Array @ING genau ein Element entfernt wird. In diesem Fall, wo wir den Namen 'Detlef' entfernen wollen, setzen wir den dritten Parameter auf 1, da wir nur ein Element entfernen wollen, das genau dem zu entfernenden Namen entspricht. Wenn Sie mehrere Elemente an dieser Position entfernen möchten, können Sie den dritten Parameter entsprechend anpassen. Sie können dies mit Perl relativ einfach erreichen, indem Sie die Datei öffnen, die letzte Zeile lesen und prüfen, ob sie leer ist. Wenn die letzte Zeile nicht leer ist, fügen Sie eine leere Zeile hinzu. Code: # Dateiname In diesem Skript lesen wir die Datei Zeile für Zeile ein und speichern sie in einem Array @zeilen. Dann überprüfen wir, ob die letzte Zeile leer ist, und fügen eine leere Zeile hinzu, wenn dies nicht der Fall ist. Schließlich schreiben wir die aktualisierten Zeilen zurück in die Datei. |