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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
#!/usr/bin/env perl
use v5.34;
use warnings;
use feature 'signatures';
no warnings ('experimental::signatures');
use Getopt::Std ();
sub usage($fh) {
print $fh <<~'EOF';
Usage:
nato
nato -h
EOF
}
sub help($fh) {
print $fh <<~'EOF';
Options:
-h, --help show this message
Translate the given input to the NATO phonetic alphabet.
Examples:
Spell 'EuAndreh':
$ echo 'EuAndreh' | nato
Echo Uniform Alfa November Delta Romeo Echo Hotel
EOF
}
for (@ARGV) {
last if $_ eq '--';
if ($_ eq '--help') {
usage *STDOUT;
help *STDOUT;
exit
}
}
my %opts;
if (!Getopt::Std::getopts('h', \%opts)) {
usage *STDERR;
exit 2;
}
if ($opts{h}) {
usage *STDOUT;
help *STDOUT;
exit;
}
my %DICT = (
'a' => 'Alfa',
'b' => 'Bravo',
'c' => 'Charlie',
'd' => 'Delta',
'e' => 'Echo',
'f' => 'Foxtrot',
'g' => 'Golf',
'h' => 'Hotel',
'i' => 'India',
'j' => 'Juliett',
'k' => 'Kilo',
'l' => 'Lima',
'm' => 'Mike',
'n' => 'November',
'o' => 'Oscar',
'p' => 'Papa',
'q' => 'Quebec',
'r' => 'Romeo',
's' => 'Sierra',
't' => 'Tango',
'u' => 'Uniform',
'v' => 'Victor',
'w' => 'Whiskey',
'x' => 'X-ray',
'y' => 'Yankee',
'z' => 'Zulu',
'1' => 'One',
'2' => 'Two',
'3' => 'Three',
'4' => 'Four',
'5' => 'Five',
'6' => 'Six',
'7' => 'Seven',
'8' => 'Eight',
'9' => 'Nine',
'0' => 'Zero',
);
while (<STDIN>) {
for my $c (split //, $_) {
my $char = $DICT{lc $c};
print "$char " if defined $char;
}
print "\n";
}
|