in reply to mixing perl & shell style & speed

Another option (File::Find really isn't that hard):
use File::Find; my %users; find(sub { return unless -f and /\.LCK$/; local @ARGV = ($file); my ($key) = <>; chomp $key; $users{$key} .= "\t$file"; }, qw(/home/sites/lctc/doc_root))
You should realize how this 'reading in the whole file' differs from the above solution, and how it doesn't really matter which way its done in this case, except if there are read problems (e.g. read permission or file no longer exists, which is possible - you get the file name then someone releases the lock before you read the lock file) on some of the files.