While that looks like it would work, if you had a lot of items in the hash table, you could find yourself being disconnected from the server for flooding.
Here's an alternative.
Code:
on *:text:*:#Chan:{
if $1 == !fliters {
.hsave -n blah blah.tmp
.play -q10 $nick blah.tmp
}
elseif $1 == !active {
say - Script is %switch $nick
}
}