-
Notifications
You must be signed in to change notification settings - Fork 0
/
morse_code.pl
57 lines (56 loc) · 1.16 KB
/
morse_code.pl
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
# date: 10/12/2013
#!/usr/bin/perl
use strict;
use warnings;
my %code = (
".-" => "A",
"-..." => "B",
"-.-." => "C",
"-.." => "D",
"." => "E",
"..-." => "F",
"--." => "G",
"...." => "H",
".." => "I",
".---" => "J",
"-.-" => "K",
".-.." => "L",
"--" => "M",
"-." => "N",
"---" => "O",
".--." => "P",
"--.-" => "Q",
".-." => "R",
"..." => "S",
"-" => "T",
"..-" => "U",
"...-" => "V",
".--" => "W",
"-..-" => "X",
"-.--" => "Y",
"--.." => "Z",
"-----" => "0",
".----" => "1",
"..---" => "2",
"...--" => "3",
"....-" => "4",
"....." => "5",
"-...." => "6",
"--..." => "7",
"---.." => "8",
"----." => "9");
open(my $input, "<", $ARGV[0]) or die $!;
foreach(<$input>){
chomp;
my @words = split(" ", $_);
for(my $i = 0; $i <= $#words; $i++){
my @chars = split(" ", $words[$i]);
for(my $j = 0; $j <= $#chars; $j++){
$chars[$j] = $code{$chars[$j]};
}
$words[$i] = join "", @chars;
}
print join " ", @words;
print "\n";
}
close($input);