Lingua::EN::Conjugate - Conjugation of English verbs
use Lingua::EN::Conjugate qw( conjugate conjugations contraction); print conjugate( 'verb'=>'look', 'tense'=>'perfect_prog', 'pronoun'=>'he', 'negation'=>'not' ); # "he was not looking" my $go = conjugate( 'verb'=>'go', 'tense'=>[qw(past modal_perf)], 'modal'=>'might') ; # returns a hashref print $go->{modal_perf}{I}; # "I might have gone" my @be = conjugate( 'verb'=>'be', 'pronoun'=>[qw(I we)], 'tense'=>'past_prog', 'negation'=>'n_t' ); # returns an array print $be[0]; # "I wasn't going" #pretty printed table of conjugations print conjugations( 'verb'=>'walk', 'question'=>1, 'allow_contractions'=>1, 'modal'=>'should', 'negation'=>'n_t'); ------------- PRESENT ------------- ---------- PRESENT_PROG ----------- don't I walk am I not walking don't you walk aren't you walking doesn't he walk isn't he walking don't we walk aren't we walking don't they walk aren't they walking -------------- PAST --------------- ------------ PAST_PROG ------------ didn't I walk wasn't I walking didn't you walk weren't you walking didn't he walk wasn't he walking didn't we walk weren't we walking didn't they walk weren't they walking ----------- PRESENT_DO ------------ ------------- PAST_DO ------------- don't I walk didn't I walk don't you walk didn't you walk doesn't he walk didn't he walk don't we walk didn't we walk don't they walk didn't they walk ------------ PAST_PROG ------------ ------------- PERFECT ------------- wasn't I walking haven't I walked weren't you walking haven't you walked wasn't he walking hasn't he walked weren't we walking haven't we walked weren't they walking haven't they walked ---------- PAST_PERFECT ----------- ---------- PERFECT_PROG ----------- hadn't I walked haven't I been walking hadn't you walked haven't you been walking hadn't he walked hasn't he been walking hadn't we walked haven't we been walking hadn't they walked haven't they been walking -------- PAST_PERFECT_PROG -------- -------------- MODAL -------------- hadn't I been walking shouldn't I walk hadn't you been walking shouldn't you walk hadn't he been walking shouldn't he walk hadn't we been walking shouldn't we walk hadn't they been walking shouldn't they walk -------------- MODAL -------------- --------- MODAL_PERF_PROG --------- shouldn't I walk shouldn't I have been walking shouldn't you walk shouldn't you have been walking shouldn't he walk shouldn't he have been walking shouldn't we walk shouldn't we have been walking shouldn't they walk shouldn't they have been walking
This module constructs various verb tenses in English.
Thanks to Susan Jones for the list of irregular verbs and an explanation of English verb tenses http://www2.gsu.edu/~wwwesl/egw/grlists.htm.
past tense form of the verb: "go" -> "went"
past participle form of the verb: "go" -> "gone"
"-ing" form of the verb: "go" -> "going"
third person singular form of the verb: "go" -> "goes"
In scalar context with tense and pronoun defined as scalars, only one conjugation is returned.
In scalar context with tense and pronoun undefined or defined as array refs, a hashref keyed by tense and pronoun is returned.
In array context, it returns an array of conjugated forms ordered by tense, then pronoun.
'verb'=>'coagulate'
The only required parameter. The verb should be in its infinitive form (no "is", "was" etc.) and without a "to" tacked on the front.
'tense'=>'past' 'tense'=>['modal_perf', 'used_to']
If no 'tense' argument is supplied, all applicable tenses are returned.
'passive' => 1 'passive' => undef (default)
If specified, the passive voice is used. Some tenses, such as Imperiative, are disabled when the passive option is used.
'pronoun'=>'he' 'pronoun'=>[qw(I we you)]
If no 'pronoun' argument is supplied, all applicable pronouns are returned.
'question' => 1 'question' => 0 (default)
In case you're playing Jeapordy
'negation'=> 'not' 'negation'=> 'n_t' 'negation'=> undef (default)
Changes "do" to "do not" or "don't" depending on which value you request. For words where you can't use "n't" (like "am") or where it feels clumsy or antique (like "may"), this will substitute "not" for "n_t" as appropriate.
'modal' => one of: may, might, must, should, could, would, will (default), can, shall.
Specifies what modal verb to use for the modal tenses.
http://www.kyrene.k12.az.us/schools/brisas/sunda/verb/1help.htm
'allow_contractions'=>1 allows "I am"->"I'm", "they are"->"they're" and so on 'allow_contractions'=>0 (default)
The negation rule above is applied before the allow_contractions rule is checked:
allow_contractions =>1, negation=>n_t : "he isn't walking"; allow_contractions =>0, negation=>n_t : "he isn't walking"; allow_contractions =>1, negation=>not : "he's not walking"; allow_contractions =>0, negation=>not " "he is not walking";
returns a pretty-printed table of conjugations. (code stolen from L<Lingua::IT::Conjugate>)
None by default. You can export the following functions and variables:
conjugate conjugations past participle gerund s_form @tenses @pronouns
HAVE TO + Verb HAVE GOT TO + Verb BE ABLE TO + Verb OUGHT TO + Verb BE SUPPOSED TO + Verb
Russ Graham, russgraham@gmail.com
Lingua::IT::Conjugate
Lingua::PT::Conjugate
Lingua::EN::Contraction
To install Lingua::EN::Conjugate, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lingua::EN::Conjugate
CPAN shell
perl -MCPAN -e shell install Lingua::EN::Conjugate
For more information on module installation, please visit the detailed CPAN module installation guide.