Kann ich eine ganze Datei mit dem Operator überspringen?

8

Der folgende Perl-Code hat eine offensichtliche Ineffizienz;

%Vor%

Der Code wird durch jede Zeile der Datei gehen, die wir nicht wollen.

Von der Größe der Dateien, auf denen dieses spezielle Skript ausgeführt wird, wird es wahrscheinlich keinen merklichen Unterschied machen, aber aus Gründen des Lernens; Wie kann ich die ganze Datei & lt; & gt; Arbeitet und gehe zum nächsten?

Der Grund dafür ist, dass der Server, auf dem dieses Skript läuft, alte Versionen von Apps mit der Versionsnummer im Dateinamen speichert. Ich bin nur an der aktuellen Version interessiert.

    
Chris Huang-Leaver 14.09.2009, 15:03
quelle

3 Antworten

15

grep ARGV zuerst.

%Vor%     
Paul Roub 14.09.2009, 15:57
quelle
19

Paul Roubs Lösung ist am besten, wenn Sie @ARGV filtern können, bevor Sie mit dem Lesen von Dateien beginnen.

Wenn Sie eine Datei überspringen müssen, nachdem Sie mit der Iteration begonnen haben,

%Vor%     
ephemient 14.09.2009 16:15
quelle
9

Paul Roubs Antwort funktioniert für weitere Informationen, siehe Der IO-Operatoren-Bereich der perlop-Manpage . Das Muster der Verwendung von Grep wird ebenso erwähnt wie einige andere Dinge, die sich auf & lt; & gt; beziehen.

Beachten Sie die Erwähnung von ARGV :: readonly in Bezug auf Dinge wie:

%Vor%     
mikegrb 14.09.2009 16:10
quelle

Tags und Links