aboutsummaryrefslogtreecommitdiff
path: root/challenge-004/zapwai/perl/ch-2.pl
blob: 2c4a458e46693bad3812a378dd0f06b71fa315cb (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
use v5.30.0;
my $allow = 'eiufhkljwodkg';
open fh, "<", "words" or die 'no file?';
my @word = <fh>;
close fh;
word: foreach my $word (@word) {
    chomp $word;
    my $WORD = $word;
    my $allow = $allow;		# local copy
    my $cnt = 0;
    for my $i (0 .. -1 + length $word) {
	my $letter = substr $word, $i, 1;
	if ($allow =~ $letter) {
	    $cnt++;
	}
    }

    if ($cnt < length $word) {
	next word;
    } else {
	my $index = 0;
	do {
	    my $let = substr $allow, $index, 1;
	    if ($word =~ /$let/) {
		$allow =~ s/$let//;
		$word =~ s/$let//;
	    } else {
		$index++
	    }
	} while ($index < length $allow);
    }    
    say "$WORD" unless ($word);
}