/
lipogram
executable file
·52 lines (36 loc) · 997 Bytes
/
lipogram
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env perl6
use v6.c;
use Pod::To::Text;
use Lingua::Lipogram;
multi MAIN(*@item, Str :l(:$letters), Bool :f(:$files)) {
without $letters {
say 'No letters given!';
exit 1;
}
if $files {
my @status = map {lipogram(.IO, $letters)}, @item;
exit +!all(@status);
} else {
exit +!lipogram(@item.join(' '), $letters);
}
}
multi MAIN(Bool :h(:$help)) {
say pod2text($=pod);
}
multi MAIN(Bool :V(:$version)) {
say "Author: " ~ Lingua::Lipogram.^auth;
say "Version: " ~ Lingua::Lipogram.^ver;
}
=begin pod
=head1 NAME
lipogram - Check whether words form a lipogram
=head1 SYNOPSIS
The exit status is 0 if the given words form a lipogram, nonzero otherwise.
Usage:
lipogram [-l|--letters=<Str>] [-f|--files] [<item> ...]
lipogram [-h|--help]
lipogram [-V|--version]
Examples:
lipogram --letters=s The quick brown fox jumped over the lazy dog.
lipogram --letters=s --files fox.txt
=end pod