use strict; use warnings; use utf8; use Test::More; { package MessageFilter; sub new { my ($class, $word) = @_; bless \$word, $class; } sub detect { my ($self, $str) = @_; return index($str, $$self) >= 0; } } subtest 'MessageFilter' => sub { my $filter = MessageFilter->new('foo'); subtest 'should detect message with NG word' => sub { ok($filter->detect('hello from foo')); }; subtest 'should not detect message without NG word' => sub { ok(!$filter->detect('hello world!')); fail; }; }; done_testing;