aboutsummaryrefslogtreecommitdiff
path: root/challenge-215/barroff/perl/ch-1.pl
blob: b0629a88992ba9f6c68ea350ef3d7283ea058373 (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
#!/usr/bin/env perl

use v5.36;
use strict;
use warnings;

sub is_alphabetic ($s) {
    return $s eq join( '', sort( split( //, $s ) ) );
}

sub odd_one_out (@words) {
    my @sorted_words = grep is_alphabetic($_), @words;
    return $#words - $#sorted_words;
}

#| Run test cases
sub MAIN() {
    use Test2::V0 qw(is plan);
    plan 3;

    is odd_one_out( 'abc', 'xyz', 'tsu' ), 1, "works for ('abc', 'xyz', 'tsu')";
    is odd_one_out( 'rat', 'cab', 'dad' ), 3, "works for ('rat', 'cab', 'dad')";
    is odd_one_out( 'x',   'y',   'z' ),   0, "works for ('x', 'y', 'z')";
}

MAIN();