use strict; use warnings; use 5.010; local $/ = "--\n"; while () { if (/^rn: uid:(\S+),/m) { my $uid = $1; my $count = 0; $count++ for /^id-info:/mg; say "$uid: $count"; } } __DATA__ -- rn: uid:, id-info: | | creation-time: 1366069064 -- rn: uid:, id-info: | | id-info: | | id-info: | | creation-time: 1366069064 -- rn: uid:, id-info: | | id-info: | | # random empty line in each entry with 'deletion-time' deletion-time: 1367949064 creation-time: 1366069064 --