1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
#! /usr/bin/perl use strict; use warnings; while ( my $line = <DATA> ) { # mehrzeilige Kommentare zusammenfassen while ( $line =~ m/:comment/ && $line !~ m/\)$/ ) { # lese naechste Zeile aus; Ende, falls EOF erreicht defined( my $add = <DATA> ) or last; # fuege naechste Zeile hinzu $line .= $add; } # ersetze \n durch " " in mehrzeilige Kommentaren $line =~ tr/\n/ / if $line =~ m/:comment/; # NORMALE AUSWERTUNG folgt hier: if ( $line =~ m/:comment \((.*)\)/ ) { print "Kommentar: $1\n"; } } __DATA__ :data ( :subdata ( :whatever () :comment ("kommentar 1") ) :subdata ( :whatever () :comment ("kommentar 2a 2b") ) :subdata ( :whatever () :comment ("kommentar 3a 3b 3c") ) )