Number::Phone::Lib - Instantiate Number::Phone::* objects from libphonenumber


    use Number::Phone::Lib;

    $daves_phone = Number::Phone::Lib->new('+442087712924');
    $daves_other_phone = Number::Phone::Lib->new('+44 7979 866 975');
    # alternatively      Number::Phone::Lib->new('+44', '7979 866 975');
    # or                 Number::Phone::Lib->new('UK', '07979 866 975');

    if ( $daves_phone->is_mobile() ) {

This subclass of Number::Phone exclusively uses classes generated from Google's libphonenumber project. libphonenumber doesn't have enough data to support all the features of Number::Phone, but you might want to use its data and no other for a few reasons:

  • Compatibility with libphonenumber's Java, C++, and JavaScript implementations.

  • Performance. UK Number parsing and validation by Number::Phone::UK, in particular, has a substantial overhead thanks to its embedded database. If all you need is simple validation and/or formatting, all that overhead is unnecessary.

That said, the core Number::Phone UK module is far more comprehensive.


You may use, modify and distribute this software under the same terms as perl itself.


  • David Cantrell <>

  • David E. Wheeler <>

Copyright 2014.