use warnings; use strict; my %atts; my $att; while () { chomp; $att = $1 if /^attribute:\s+(.+)/; $atts{$att} = $1 if /^value:\s+(.+)/; } use Data::Dumper; $Data::Dumper::Sortkeys=1; print Dumper(\%atts); __DATA__ AVUs defined for dataObj 3a/73/2c/metadata.csv: attribute: dcterms:created value: 2014-08-13T00:00:10 units: ---- attribute: control value: 0 units: ---- attribute: md5 value: 3a732cd0fddaa80fa65fcf28664eaf6d units: ----