#!/usr/local/bin/perl -lw open(PERL, "/usr/share/dict/words"); while () { chomp; /^([perl])/i or next; push @{lc($1)}, $_; } perl([], split //, "perl"); sub perl { my $perl = shift; my $letter = shift; for (@$letter) { perl([@$perl, $_], @_); } print join " ", @$perl; }