Muss ich in einem regulären Perl-Literal ein Semikolon umgehen?

9

Jemand sagt mir, dass ich ein Semikolon in einem Perl-Literal mit regulärem Ausdruck verlassen muss. Das heißt, um eine Zeile mit einem Semikolon zu finden, sollte ich /\;/ und nicht /;/ verwenden.

Nach dem, was ich gelesen habe, hat das Semikolon in einem regulären Ausdrucksliteral keine besondere Bedeutung, daher erscheint es überflüssig, es zu entfernen. Ich habe ein paar Experimente gemacht und /;/ scheint gut zu funktionieren. Wenn Warnungen aktiviert sind und das Pragma use strict; in Kraft ist, klagen perl nicht.

Gibt es einen Grund, warum /\;/ besser ist als /;/ ? Ist das versionsabhängig?

    
Sinan Ünür 29.07.2009, 14:26
quelle

6 Antworten

13

Es ist absolut nicht notwendig, ein Semikolon in einem regulären Ausdrucksmuster zu vermeiden. In den fast zehn Jahren, in denen ich Perl benutzt habe, gab es keine solche Notwendigkeit, und ich bezweifle, dass es jemals solche gab.

Eine kurze Zusammenfassung von Sonderzeichen und Escape-Sequenzen finden Sie in perldoc perlreref .

    
Sinan Ünür 29.07.2009 14:28
quelle
5

Vielleicht denkt jemand, dass das Semikolon entkommen muss, weil die Syntaxhervorhebung des Editors durch das eingebettete Semikolon verwirrt wird. Meiner Erfahrung nach haben die meisten Redakteure viel Mühe mit der Perl-Syntax umzugehen. Denken Sie daran, Nur Perl kann Perl analysieren .

    
Adam Batkin 29.07.2009 14:42
quelle
3

Vielleicht ist dies eine Gewohnheit, die sich aus der Verwendung von Perl-Einzeilern auf der Kommandozeile entwickelt und nicht zitiert, also das ';' den Rest in einen anderen Befehl aufteilen? Wie auch alle anderen sagen, keine Notwendigkeit.

    
Cascabel 29.07.2009 14:29
quelle
1

es gibt keine Notwendigkeit, es zu entkommen.

    
ghostdog74 29.07.2009 14:28
quelle
1

Nein. /;/ sollte immer gut funktionieren.

    
innaM 29.07.2009 14:28
quelle
0

Ja, Semikolon ist kein Metazeichen, also muss es nicht maskiert werden.

    
jeje 29.07.2009 14:43
quelle

Tags und Links