# Precompile all the patterns and store them into the key
# CompiledPattern
$_->{'CompiledPattern'} = qr/$_->{'Pattern'}/i for values %$users;
my %unmatched_users;
@unmatched_users{ keys %$users } = ();
while ( my $line = <> )
{
...
my @users = grep $line =~ $users->{$_}{'CompiledPattern'},
keys %unmatched_users;
if ( @users )
{
warn "Great, we found "
. join( ', ',
map $_->{'Pattern'},
@{$users}{ @users } )
. " user(s)!\n";
delete @unmatched_users{ @users };
}
else
{
warn "$line didn't match any users.\n";
}
}
####
use List::Util 'first';
# Precompile all the patterns and store them into the key
# CompiledPattern
$_->{'CompiledPattern'} = qr/$_->{'Pattern'}/i for values %$users;
my %unmatched_users;
@unmatched_users{ keys %$users } = ();
while ( my $line = <> )
{
...
my $user = first { $line =~ $users->{$_}{'CompiledPattern'} }
keys %unmatched_users;
if ( defined $user )
{
warn "Great, we found pattern $user->{'Pattern'}!\n";
delete $unmatched_users{ $user };
}
else
{
warn "$line didn't match any users.\n";
}
}
##
##
# Precompile all the patterns and store them into the key CompiledPattern
$_->{'CompiledPattern'} = qr/$_->{'Pattern'}/i for values %$users;
while ( my $line = <> )
{
...
my $user = first { $line =~ $users->{$_}{'CompiledPattern'} }
keys %$users;
if ( $user )
{
warn "Great, we found pattern $user->{'Pattern'}!\n";
}
else
{
warn "$line didn't match any users.\n";
}
}
##
##
# Precompile all the patterns and store them into the key
# CompiledPattern
$_->{'CompiledPattern'} = qr/$_->{'Pattern'}/i for values %$users;
while ( my $line = <> )
{
...
my @users = grep $line =~ $users->{$_}{'CompiledPattern'},
keys %$users;
if ( @users )
{
warn "Great, we found "
. join( ', ',
map $_->{'Pattern'},
@{$users}{ @users } )
. " user(s)!\n";
}
else
{
warn "$line didn't match any users.\n";
}
}