sub readPlaque { my($opt,@files)=@_; local *FILE; for my $fn (@files) { open(FILE,$fn) or (!$$opt{quiet} and print STDERR "couldn't open $fn\n"),next; my %plaq; chomp($plaq{time}=); $plaq{plr}={}; $plaq{pos}={}; while () { chomp; # rank name level exp created age if (/^(\d+) (\w+) (\d+) (\d+) (\d+) (\d+)$/) { $plaq{plr}{$2}=$plaq{pos}{$1}=[$1,$2,$3,$4,$5,$6]; #{ match([qw(rank name level exp created age)],[$1,$2,$3,$4,$5,$6]) }; $c++; } else { print "syntax error in $fn line $. '$_'\n"; } } close(FILE); chomp($ts=ctime($plaq{time})); print "Read plaque ",scalar(@plaque),": $fn ($ts)\n"; push @plaque,{ %plaq }; } }