#!/usr/bin/perl -l # selfgrams4.pl - find words that have valid anagrams # scruss - 2019-07 my ( %grams, $key, $fh, @out, $k ); open( $fh, '<', '/usr/share/dict/british-english-insane' ) or die "$!\n"; foreach ( grep { /^[a-z]+$/ && chomp; } <$fh> ) { $key = join( '', sort( split( '', $_ ) ) ); if ( exists( $grams{$key} ) ) { $out[ $grams{$key} ] .= ', ' . $_; } else { $grams{$key} = $k; $out[$k] = $_; $k++; } } close($fh); print join( "\n", grep { index( $_, ',' ) >= 0 && s/,/:/; } @out ); exit;