Acme-Dahut-Call
view release on metacpan or search on metacpan
lib/Acme/Dahut/Call/Identifier.pm view on Meta::CPAN
package Acme::Dahut::Call::Identifier;
use strict;
use warnings;
sub new { return bless {}, shift }
my $DAHUT_RE = qr/
t+
(?:
u+(?:h+(?:a+d+|d+a+)|a+(?:h+d+|d+h+)|d+(?:h+a+|a+h+))
|h+(?:u+(?:a+d+|d+a+)|a+(?:u+d+|d+u+)|d+(?:u+a+|a+u+))
|a+(?:u+(?:h+d+|d+h+)|h+(?:u+d+|d+u+)|d+(?:u+h+|h+u+))
|d+(?:u+(?:h+a+|a+h+)|h+(?:u+a+|a+u+)|a+(?:u+h+|h+u+))
)
|u+
(?:
t+(?:h+(?:a+d+|d+a+)|a+(?:h+d+|d+h+)|d+(?:h+a+|a+h+))
|h+(?:t+(?:a+d+|d+a+)|a+(?:t+d+|d+t+)|d+(?:t+a+|a+t+))
|a+(?:t+(?:h+d+|d+h+)|h+(?:t+d+|d+t+)|d+(?:t+h+|h+t+))
|d+(?:t+(?:h+a+|a+h+)|h+(?:t+a+|a+t+)|a+(?:t+h+|h+t+))
)
|h+
(?:
t+(?:u+(?:a+d+|d+a+)|a+(?:u+d+|d+u+)|d+(?:u+a+|a+u+))
|u+(?:t+(?:a+d+|d+a+)|a+(?:t+d+|d+t+)|d+(?:t+a+|a+t+))
|a+(?:t+(?:u+d+|d+u+)|u+(?:t+d+|d+t+)|d+(?:t+u+|u+t+))
|d+(?:t+(?:u+a+|a+u+)|u+(?:t+a+|a+t+)|a+(?:t+u+|u+t+))
)
|a+
(?:
t+(?:u+(?:h+d+|d+h+)|h+(?:u+d+|d+u+)|d+(?:u+h+|h+u+))
|u+(?:t+(?:h+d+|d+h+)|h+(?:t+d+|d+t+)|d+(?:t+h+|h+t+))
|h+(?:t+(?:u+d+|d+u+)|u+(?:t+d+|d+t+)|d+(?:t+u+|u+t+))
|d+(?:t+(?:u+h+|h+u+)|u+(?:t+h+|h+t+)|h+(?:t+u+|u+t+))
)
|d+
(?:
t+(?:u+(?:h+a+|a+h+)|h+(?:u+a+|a+u+)|a+(?:u+h+|h+u+))
|u+(?:t+(?:h+a+|a+h+)|h+(?:t+a+|a+t+)|a+(?:t+h+|h+t+))
|h+(?:t+(?:u+a+|a+u+)|u+(?:t+a+|a+t+)|a+(?:t+u+|u+t+))
|a+(?:t+(?:u+h+|h+u+)|u+(?:t+h+|h+t+)|h+(?:t+u+|u+t+))
)
/xi;
sub is_call {
my ( $self, $message ) = @_;
return $message =~ $DAHUT_RE;
}
1;
__END__
=head1 NAME
Acme::Dahut::Call::Identifier - detects the melodious sound of the wild Dahut ... in Text.
=head1 VERSION
This document describes Acme::Dahut::Call version 0.0.1
=head1 SYNOPSIS
use Acme::Dahut::Call;
( run in 1.855 second using v1.01-cache-2.11-cpan-5735350b133 )