#!/usr/bin/env perl use strict; use warnings; my $all = do { local $/; }; my %matches = $all =~ /^(BA_.\w+).*?;(.*)$/mg; while (my ($unterprogramm, $kommentar) = each %matches) { print "Unterprogramm $unterprogramm hat den Kommentar $kommentar\n" } __DATA__ BedingterHalt(16) BA_08150_a_bc() ;bla bla bla ## <- ein Unterprogramm BedingterHalt(16) BA_08151_d_ef() ;bla bla bla bla ## <- ein anderes Unterprogramm