#!/usr/bin/perl # http://perlmonks.org/?node_id=1201500 use strict; use warnings; my @words = glob '{i,x}' x 6; print "@words\n"; my $n = 1; # number of times a letter occurs in a word my @oneletter = grep /^(?| (?=.*?(.)(?!.*\1)) (?: (?:(?!\1).)* \1 ){$n} (?:(?!\1).)* | (?=.*(.)) (?: (?:(?!\1).)* \1 ){$n} (?:(?!\1).)* )$ /x, @words; print "\n@oneletter\n\n", scalar @oneletter, "\n";