Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Wir brauchen für statistische Überprüfungen unseres Perl-Codes die Möglichkeit, pod-Kommentare zu entfernen und durch die gleiche Anzahl an Newlines zu ersetzen.

Wir haben also den String $code und der sieht so aus:

sub foo { return 'bar' };

=head 

POD-Kommentar

=cut

sub bar { return 'foobar' };
Hier müssen wir jetzt den gesamten POD-Kommentar entfernen, so, dass aus dem Skript
sub foo { return 'bar' };




sub bar { return 'foobar' };
wird. Warum? Um z.B. "dieses Modul wird mit 'use Modul;' eingebunden..." nicht in die "dieses Modul nutzt dies und das"-Statistiken mitzunehmen. Ich hatte dazu auf die Schnelle diesen Regex hier entwickelt:
$code =~ s#(?:\R|^)(?:=.+?)\R=cut(?:\R|$)#"\n"x((${^MATCH}=~tr{\n|\r}{}))#segp;
Nur leider funktioniert er nicht ganz bei Kommentaren mit mehreren Überschriften. Wenn wir also
sub foo { return 'bar' };

=head

POD-Kommentar 

=head2

POD-Kommentar 2

=cut

sub bar { return 'foobar' };
haben, würde diese Regex daraus nur
sub foo { return 'bar' };

=head

POD-Kommentar 




sub bar { return 'foobar' };

machen. Wie kann man sowas als Regex realisieren? Einen extra Parser dafür möchte ich nicht schreiben und wir können auch PPI usw. nicht benutzen.

Geschrieben

Auch wenn ich etwas länger gebraucht habe, um Deinen Regex verstehen zu können, kann ich darin keinen Fehler entdecken. Dein Beispiel funktioniert bei mir (Ubuntu, Perl 5.14.2) entsprechend einwandfrei:

sub foo { return 'bar' };






sub bar { return 'foobar' };

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...