aboutsummaryrefslogtreecommitdiff
path: root/challenge-194/dave-jacoby/perl/ch-1.pl
blob: 366233e0a894b204402adcd610c8fbe760aad581 (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
#!/usr/bin/env perl

use strict;
use warnings;
use experimental qw{ fc say postderef signatures state };

my @times = qw{
    ?5:00
    ?3:00
    1?:00
    2?:00
    12:?5
    12:5?
};

for my $time (@times) {
    my $output = digital_clock($time);
    say <<"END";
    Input:  \$time = '$time'
    Output: $output
END
}

sub digital_clock ( $input ) {
    my $valid = '';
    for my $i ( 0 .. 9 ) {
        my $j = $input;
        $j =~ s/\?/$i/mx;
        my ( $h, $m ) = split m{:}, $j;
        return $valid if $h > 23;
        return $valid if $m > 59;
        $valid = $i;
    }
    return $valid;
}