use strict; use warnings; while ( $_ = do { local $/ = qq(""\n); <> }) { if (/(\w+\.\w+).*Default_Name:\s\@ST\/(\w+)\/(\w+)$/ms) { print "[$1]\n", "db_part_no=$2\n", "db_part_rev=$3\n\n"; } } #### >perl szpt9m.pl 11134376.txt [xyz.txt] db_part_no=ABC1234 db_part_rev=00001 [abc.txt] db_part_no=ABC5678 db_part_rev=00001 [rtq.txt] db_part_no=ABC2345 db_part_rev=00002