in reply to Looking up a hash by value

The following assumes that the key, not the value of %whop holds the names of the online users, which is what I got from reading the code sample.

First, lose the heredoc for simple concatenation. Heredocs are neat, but they completely destroy readability. This will do:
print "$newm<b>*</b> - ";
You could also build this hash during the file read just as easily and save yourself an extra loop.

Second, I suggest you create a quick hash from your text file and then look through %whop to do your work:
my %new_member; foreach (@newest_member) { $new_member{$_} = ''; } then for your loop (which as it looks now has the wrong outer loop goi +ng): foreach (values %whop) { if (exists( $new_member{$_} ) { print "$_<b>*</b> - "; } else { print "$_ - "; } }