#! perl -slw use strict; use Data::Dump qw[pp]; while( <> ) { my %record = m[ ([^<]+?):.+? >\s*([^<]+?)\s* ]xg; pp \%record; }