in reply to Relational textfile?

Assuming that you never have pipes inside your data: (untested)

use strict; my @list_defs = ( {2 => 'yes', 3 => ''}, {2 => 'yes', 7 => 'yes'}, {2 => 'yes', 3 => '', 6 => 'yes'}, ); my @lists; while (<FILE>) { my @vals = split /\|/; my $name = $vals[0]; my $i = 0; LIST: foreach my $l (@list_defs) { foreach (keys %$l) { next LIST unless $vals[$_] eq $l->{$_}; } push $lists[$i], $name; # or \@vals; $i++; } }

I'm sure there are quicker ways, and more readable ones.

dave hj~