aboutsummaryrefslogtreecommitdiff
path: root/challenge-012/feng-chang/perl5/ch-2.pl
blob: c3c26e5f79bca176d9a741a8f100ac68b4ef443d (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
#!/bin/env perl

use Modern::Perl;
use List::Util qw(reduce);

sub common_prefix {
    my ($a, $b) = @_;
    my @a = split //, $a;
    my @b = split //, $b;

    my $r = '';
    my $i = 0;
    while ($a[$i] && $b[$i] && $a[$i] eq $b[$i]) {
        $r .= $a[$i++];
    }

    return $r;
}

chomp(my @paths = <>);
my $common_path = reduce { common_prefix($a, $b) } @paths;

my @c = split //, $common_path;
pop @c while $c[-1] ne '/';
pop @c if @c > 1;

say 'common directory path: ', join('', @c);