Thread Zeilen mit bestimmten Wort suchen und darin Text in '' in Array schreiben (16 answers)
Opened by eyekona at 2013-08-15 12:37

murphy
 2013-08-15 14:43
#169578 #169578
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
2013-08-15T12:09:06 eyekona
[...]
Auch bei dir gibt es Sachen die ich so noch nicht gesehen habe. - Gleich probieren. :-) say for z.B.
[...]

Die Syntax mach_was for (bedingung) ist eine Kurzschreibweise für for (bedingung) { mach_was }. In Verbindung mit der impliziten Variablen $_ kann das, wie in diesem Fall, als nützliche Kurzschreibweise dienen. Außer for kann man auch while, if und unless analog benutzen.

Quote
[...]
was macht use 5.012; ? Legt das die Versionsnummer von Perl fest?
Das wäre aber kontraproduktiv, da nach einem Update kein Script mehr geht, oder?
[...]

Es legt die Mindestversionsnummer fest und weist neuere Perlversionen an, sich möglichst kompatibel zu dieser spezifischen Version zu verhalten. Das verbessert also eher die Vorwärtskompatibilität.

use 5.012, also den "Perl 5.12 Modus", verwende ich gerne für Codeschnipsel, weil damit die neueren Befehle wie say aus Perl 5.10 freigeschaltet werden und gleichzeitig use strict aktiviert wird.

Quote
[...]
muss ich nur noch nachgucken, was map tut :-)
[...]

map ist eine klassische Funktion höherer Ordnung: Sie bekommt eine Subroutine oder einen Codeblock und eine Liste von Werten vorgesetzt, wendet den gegebenen Code auf jeden der Werte an und sammelt die Resultate in einer neuen Liste, die sie zurückgibt.

Ich verwende map in meinem Beispiel so, dass der Codeblock für manche Elemente eine leere Liste zurückliefert, so dass für diese Elemente nichts in der Ausgabeliste von map landet. Dadurch spare ich mir eine zusätzliche Anwendung von grep um die Liste zu filtern.

Da ich aus der Ecke der funktionalen Programmierer komme, werfe ich gerne mit map, grep, List::Util::reduce und dergleichen um mich ;-)
When C++ is your hammer, every problem looks like your thumb.

View full thread Zeilen mit bestimmten Wort suchen und darin Text in '' in Array schreiben