The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Text::DoubleMetaphone - Phonetic encoding of words.


  use Text::DoubleMetaphone qw( double_metaphone );
  my($code1, $code2) = double_metaphone("Aubrey");   


This module implements a "sounds like" algorithm developed by Lawrence Philips which he published in the June, 2000 issue of C/C++ Users Journal. Double Metaphone is an improved version of Philips' original Metaphone algorithm.

In contrast to the Soundex and Metaphone algorithms, Double Metaphone will sometimes return two encodings for words that can be plausibly pronounced multiple ways.

For additional details, see Philips' discussion of the algorithm at:


double_metaphone( STRING )

Takes a word and returns a phonetic encoding. In an array context, it returns one or two phonetic encodings for the word. In a scalar context, it returns the first encoding. The first encoding is usually based on the most commonly heard U.S. pronounciation of the word.


Copyright 2000, Maurice Aubrey <>. All rights reserved.

This code is based heavily on the C++ implementation by Lawrence Philips, and incorporates several bug fixes courtesy of Kevin Atkinson <>.

This module is free software; you may redistribute it and/or modify it under the same terms as Perl itself.


Man Pages

Text::Metaphone, Text::Soundex

Additional References

Philips, Lawrence. C/C++ Users Journal, June, 2000.

Philips, Lawrence. Computer Language, Vol. 7, No. 12 (December), 1990.

Kevin Atkinson (author of the Aspell spell checker) maintains a page dedicated to the Metaphone and Double Metaphone algorithms at <>