From 41021b1c1967678eef94240682b56dbb2dcbc6be Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Tue, 31 Aug 2010 11:51:56 +0200 Subject: [PATCH] fix messages which match multiple patterns --- scripts/mqr-track.pl | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/scripts/mqr-track.pl b/scripts/mqr-track.pl index 5b7ab20..74cdb3f 100755 --- a/scripts/mqr-track.pl +++ b/scripts/mqr-track.pl @@ -18,12 +18,15 @@ MQR::Redis->redis->psubscribe('*', sub { $regex = join('|', keys %$track); warn "# track regex: $regex\n"; } elsif ( $regex && $message =~ m/($regex)/ ) { - my $found = $1; - my $body = "TRACK [$found] $channel | $message"; - print "$body\n"; - my $to = $track->{$found} || die "no $1 in ",dump($track); - $to =~ s/^MSG /SEND /g; - MQR::Redis->publish( $to, $body ); + my $m = $message; + while ( $m =~ s/($regex)// ) { + my $found = $1; + my $body = "TRACK [$found] $channel | $message"; + print "$body\n"; + my $to = $track->{$found} || die "no $1 in ",dump($track); + $to =~ s/^MSG /SEND /g; + MQR::Redis->publish( $to, $body ); + } } } else { warn "$channel | $message\n"; -- 2.20.1