in reply to strict

Here's how I would do it:
#!/usr/bin/perl -w use strict; use Data::Dumper; open FILE, "users.merit" or die "can't open users.merit."; my $fieldreg = qr/([^(?:\s=\s)]+)\s=\s([^,]+)/; my %users; my $user; while(<FILE>) { chomp; # next user? if(/(\S+)\s+$fieldreg/) { $user = $1; $users{$user}{$2} = $3; next; } if(/$fieldreg/) { $users{$user}{$1} = $2; } } print Dumper(\%users);
$0.02 :)