my $h = {}; my @data = map {{%{@$h{@names} = split, $h}}} split '#', $patterns;