The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Regular QOTW #8
# http://perl.plover.com/qotw/r/solution/008

use v6-alpha;

my $SEG_LENGTH = 4;

my %wordmap;
for =<> -> $word is copy {
    next if $word ~~ /\W/;
    my $w = $word.lc;
    my %w = map -> $i { substr($w,$i,$SEG_LENGTH)=>1 },
                   0..$word.chars-$SEG_LENGTH;

    for keys %w -> $w { 
        %wordmap{$w} = %wordmap.exists($w) ?? undef !! $word; 
    }
}

my $q = open("questions",:w) or die;
my $a = open("answers",:w) or die;
for (sort keys %wordmap) {
    next unless defined %wordmap{$_};
    say $q: $_;
    say $a: %wordmap{$_};
}
$q.close; $a.close;