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 )