23 push @perms, $t.$vals[0];
25 for my $i (0 .. $#vals) {
27 my $u = splice @v1, $i, 1;
28 do_perms("$t$u", @v1);
33 do_perms ('', qw(a b c d e f g));
39 my ($inv, $outv) = split /\s+\|\s+/;
40 my (@in) = split /\s+/, $inv;
41 my (@out) = split /\s+/, $outv;
44 for my $perm (@perms) {
47 eval "\$ni =~ y/abcdefg/$perm/";
48 my $sorted = join('', sort split //, $ni);
49 # say "i=$i ni=$ni sorted=$sorted";
50 next PERM if !defined $digits{$sorted};
55 eval "\$no =~ y/abcdefg/$perm/";
56 my $nsorted = join('', sort split //, $no);
57 $rv .= $digits{$nsorted};