#! /usr/bin/perl use strict; use warnings; while ( my $line = ) { # mehrzeilige Kommentare zusammenfassen while ( $line =~ m/:comment/ && $line !~ m/\)$/ ) { # lese naechste Zeile aus; Ende, falls EOF erreicht defined( my $add = ) 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") ) )