perl Abfrage mit -pie

8

Das funktioniert:

%Vor%

Aber das ist nicht:

%Vor%

Mit anderen Worten: -pi -e funktioniert, aber -pie nicht. Warum?

    
abc 28.10.2011, 23:17
quelle

3 Antworten

13
___ qstnhdr ___ perl Abfrage mit -pie ___ answer7943356 ___

perl sagt Ihnen schon, warum :) T






















/ p> %Vor%

Wenn Sie B :: Deparse verwenden, können Sie sehen, wie Perl Ihren Code kompiliert

%Vor%

Wenn Sie $ ^ I in Perl suchen, können Sie etwas über den Schalter -i erfahren:)

%Vor%

Nun, wenn wir den ersten Teil noch einmal durchgehen, fügen Sie ein extra -e hinzu, dann fügen Sie Deparse hinzu, der Schalter -i wird erklärt

%Vor%

Könnte es wirklich sein, dass e in -pie als Erweiterung genommen wird? Ich denke schon %Vor%

Im Zweifelsfall: Deparse oder Deparse, -p

    
___ tag123perl ___ Perl ist eine prozedurale, allgemeine Programmiersprache für allgemeine Zwecke, die für ihre native Unterstützung von regulären Ausdrücken und String-Parsing-Funktionen bekannt ist. Bitte verwenden Sie diesen Tag für Fragen zu Perl im Allgemeinen. Für Dinge, die mit der neuen (aber verwandten) Sprache "Perl 6" zu tun haben, verwenden Sie bitte das perl6-Tag. Verwenden Sie für reguläre Ausdrücke nach Perl-Art in anderen Sprachen das Regex-Tag oder, falls sie auf der PCRE-Bibliothek basieren, das PCRE-Tag. ___ qstntxt ___

Das funktioniert:

%Vor%

Aber das ist nicht:

%Vor%

Mit anderen Worten: -pi -e funktioniert, aber -pie nicht. Warum?

    
___ answer7935850 ___

Weil -i eine optionale Erweiterung für Sicherungsdateien benötigt, z. perl -pie 's/cba/abc/g' hellofile , und daher können zusätzliche Flags nicht direkt nach e folgen.

Von perldoc perlrun

  

-i [Erweiterung]

     

gibt an, dass Dateien, die von & lt; & gt; Konstrukt soll bearbeitet werden   an Ort und Stelle. Dies geschieht durch Umbenennen der Eingabedatei und Öffnen der Ausgabe   Datei mit dem ursprünglichen Namen und wählen Sie diese Ausgabedatei als   Standard für print () -Anweisungen. Die Erweiterung, sofern angegeben, wird verwendet   Ändern Sie den Namen der alten Datei, um eine Sicherungskopie zu erstellen   Regeln:

     

Wenn keine Erweiterung angegeben ist, wird keine Sicherung erstellt und die aktuelle Datei ist   überschrieben.

     

Wenn die Erweiterung kein * enthält, wird sie an das Ende angehängt   des aktuellen Dateinamens als Suffix. Wenn die Erweiterung eins enthält   oder mehr * Zeichen, dann wird jedes * durch das aktuelle ersetzt   Dateiname. In Perl ausgedrückt, könnte man sich folgendes vorstellen:

    
___
jwodder 28.10.2011, 23:22
quelle
9

Weil -i eine optionale Erweiterung für Sicherungsdateien benötigt, z. -i.bak , und daher können zusätzliche Flags nicht direkt nach -i folgen.

Von perldoc perlrun

  

-i [Erweiterung]

     

gibt an, dass Dateien, die von & lt; & gt; Konstrukt soll bearbeitet werden   an Ort und Stelle. Dies geschieht durch Umbenennen der Eingabedatei und Öffnen der Ausgabe   Datei mit dem ursprünglichen Namen und wählen Sie diese Ausgabedatei als   Standard für print () -Anweisungen. Die Erweiterung, sofern angegeben, wird verwendet   Ändern Sie den Namen der alten Datei, um eine Sicherungskopie zu erstellen   Regeln:

     

Wenn keine Erweiterung angegeben ist, wird keine Sicherung erstellt und die aktuelle Datei ist   überschrieben.

     

Wenn die Erweiterung kein * enthält, wird sie an das Ende angehängt   des aktuellen Dateinamens als Suffix. Wenn die Erweiterung eins enthält   oder mehr * Zeichen, dann wird jedes * durch das aktuelle ersetzt   Dateiname. In Perl ausgedrückt, könnte man sich folgendes vorstellen:

    
TLP 28.10.2011 23:21
quelle
5

perl sagt Ihnen schon, warum :) T






















/ p> %Vor%

Wenn Sie B :: Deparse verwenden, können Sie sehen, wie Perl Ihren Code kompiliert

%Vor%

Wenn Sie $ ^ I in Perl suchen, können Sie etwas über den Schalter -i erfahren:)

%Vor%

Nun, wenn wir den ersten Teil noch einmal durchgehen, fügen Sie ein extra -e hinzu, dann fügen Sie Deparse hinzu, der Schalter -i wird erklärt

%Vor%

Könnte es wirklich sein, dass e in -pie als Erweiterung genommen wird? Ich denke schon %Vor%

Im Zweifelsfall: Deparse oder Deparse, -p

    
logicus 30.10.2011 04:44
quelle

Tags und Links