aboutsummaryrefslogtreecommitdiff
path: root/challenge-035/yet-ebreo/perl5/ch-2.pl
blob: d8f3f39e579792370b606071112de2fbc73fc8d6 (plain)
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
#!/usr/bin/perl

use strict;
use warnings;
use feature 'say';

my %m_decode = ( 
    "489335"  =>"0",
    "96119"   =>"1",
    "22391"   =>"2",
    "5495"    =>"3",
    "1367"    =>"4",
    "341"     =>"5",
    "1877"    =>"6",
    "7637"    =>"7",
    "30581"   =>"8",
    "122333"  =>"9",
    "23"      =>"A",
    "469"     =>"B",
    "1885"    =>"C",
    "117"     =>"D",
    "1"       =>"E",
    "349"     =>"F",
    "477"     =>"G",
    "85"      =>"H",
    "5"       =>"I",
    "6007"    =>"J",
    "471"     =>"K",
    "373"     =>"L",
    "119"     =>"M",
    "29"      =>"N",
    "1911"    =>"O",
    "1501"    =>"P",
    "7639"    =>"Q",
    "93"      =>"R",
    "21"      =>"S",
    "7"       =>"T",
    "87"      =>"U",
    "343"     =>"V",
    "375"     =>"W",
    "1879"    =>"X",
    "7543"    =>"Y",
    "1909"    =>"Z"
);

my $string_to_decode = $ARGV[0] || "10111000000011101110101110001010111000101000111010111010001110101110000000111010101000101110100011101110111000101110111000111010000000101011101000111011101110001110101011100000001011101110111000101011100011101110001011101110100010101000000011101110111000101010111000100010111010000000111000101010100010000000101110101000101110001110111010100011101011101110000000111010100011101110111000111011101";

sub decode {
    my $string = pop =~
    #Replace the assigned word gap with @
    s/0000000/@/gr =~
    #Replace the assigned char gap with #
    s/000/#/gr =~
    #Replace morse code with equivalent char from hash
    s/[01]+/$m_decode{oct "b$&"}/gre =~
    #Replace @ with space
    s/@/ /gr =~
    #Remove #'s
    s/#//gr;
    return $string
}

say "Decoded String: ".decode($string_to_decode);

=begin
perl .\ch-2.pl 101110111011100010101110001010100011100000001011100011101000111011101110001110001010101000100010111010000000101110111010001000101110100010111010100000001010101000101110001110101110100011101011100010001011101
Decoded String: JUST ANOTHER PERL HACKER
=cut