# automatically generated file, don't edit # Copyright 2024 David Cantrell, derived from data from libphonenumber # http://code.google.com/p/libphonenumber/ # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. package Number::Phone::StubCountry::IT; use base qw(Number::Phone::StubCountry); use strict; use warnings; use utf8; our $VERSION = 1.20250323211829; my $formatters = [ { 'format' => '$1', 'intl_format' => 'NA', 'leading_digits' => ' 1(?: 0| 9(?: 2[2-9]| [46] ) ) ', 'pattern' => '(\\d{4,5})' }, { 'format' => '$1', 'intl_format' => 'NA', 'leading_digits' => ' 1(?: 1| 92 ) ', 'pattern' => '(\\d{6})' }, { 'format' => '$1 $2', 'leading_digits' => '0[26]', 'pattern' => '(\\d{2})(\\d{4,6})' }, { 'format' => '$1 $2', 'leading_digits' => ' 0[13-57-9][0159]| 8(?: 03| 4[17]| 9(?: 2| 3[04]| [45][0-4] ) ) ', 'pattern' => '(\\d{3})(\\d{3,6})' }, { 'format' => '$1 $2', 'leading_digits' => ' 0(?: [13-579][2-46-8]| 8[236-8] ) ', 'pattern' => '(\\d{4})(\\d{2,6})' }, { 'format' => '$1 $2', 'leading_digits' => '894', 'pattern' => '(\\d{4})(\\d{4})' }, { 'format' => '$1 $2 $3', 'leading_digits' => ' 0[26]| 5 ', 'pattern' => '(\\d{2})(\\d{3,4})(\\d{4})' }, { 'format' => '$1 $2 $3', 'leading_digits' => ' 1(?: 44| [679] )| [378]| 43 ', 'pattern' => '(\\d{3})(\\d{3})(\\d{3,4})' }, { 'format' => '$1 $2 $3', 'leading_digits' => ' 0[13-57-9][0159]| 14 ', 'pattern' => '(\\d{3})(\\d{3,4})(\\d{4})' }, { 'format' => '$1 $2 $3', 'leading_digits' => '0[26]', 'pattern' => '(\\d{2})(\\d{4})(\\d{5})' }, { 'format' => '$1 $2 $3', 'pattern' => '(\\d{4})(\\d{3})(\\d{4})' }, { 'format' => '$1 $2 $3', 'leading_digits' => '3', 'pattern' => '(\\d{3})(\\d{4})(\\d{4,5})' } ]; my $validators = { 'fixed_line' => ' 0669[0-79]\\d{1,6}| 0(?: 1(?: [0159]\\d| [27][1-5]| 31| 4[1-4]| 6[1356]| 8[2-57] )| 2\\d\\d| 3(?: [0159]\\d| 2[1-4]| 3[12]| [48][1-6]| 6[2-59]| 7[1-7] )| 4(?: [0159]\\d| [23][1-9]| 4[245]| 6[1-5]| 7[1-4]| 81 )| 5(?: [0159]\\d| 2[1-5]| 3[2-6]| 4[1-79]| 6[4-6]| 7[1-578]| 8[3-8] )| 6(?: [0-57-9]\\d| 6[0-8] )| 7(?: [0159]\\d| 2[12]| 3[1-7]| 4[2-46]| 6[13569]| 7[13-6]| 8[1-59] )| 8(?: [0159]\\d| 2[3-578]| 3[1-356]| [6-8][1-5] )| 9(?: [0159]\\d| [238][1-5]| 4[12]| 6[1-8]| 7[1-6] ) )\\d{2,7} ', 'geographic' => ' 0669[0-79]\\d{1,6}| 0(?: 1(?: [0159]\\d| [27][1-5]| 31| 4[1-4]| 6[1356]| 8[2-57] )| 2\\d\\d| 3(?: [0159]\\d| 2[1-4]| 3[12]| [48][1-6]| 6[2-59]| 7[1-7] )| 4(?: [0159]\\d| [23][1-9]| 4[245]| 6[1-5]| 7[1-4]| 81 )| 5(?: [0159]\\d| 2[1-5]| 3[2-6]| 4[1-79]| 6[4-6]| 7[1-578]| 8[3-8] )| 6(?: [0-57-9]\\d| 6[0-8] )| 7(?: [0159]\\d| 2[12]| 3[1-7]| 4[2-46]| 6[13569]| 7[13-6]| 8[1-59] )| 8(?: [0159]\\d| 2[3-578]| 3[1-356]| [6-8][1-5] )| 9(?: [0159]\\d| [238][1-5]| 4[12]| 6[1-8]| 7[1-6] ) )\\d{2,7} ', 'mobile' => ' 3[2-9]\\d{7,8}| (?: 31| 43 )\\d{8} ', 'pager' => '', 'personal_number' => ' 1(?: 78\\d| 99 )\\d{6} ', 'specialrate' => '( 84(?: [08]\\d{3}| [17] )\\d{3} )|( (?: 0878\\d{3}| 89(?: 2\\d| 3[04]| 4(?: [0-4]| [5-9]\\d\\d )| 5[0-4] ) )\\d\\d| (?: 1(?: 44| 6[346] )| 89(?: 38| 5[5-9]| 9 ) )\\d{6} )', 'toll_free' => ' 80(?: 0\\d{3}| 3 )\\d{3} ', 'voip' => '55\\d{8}' }; my %areanames = (); $areanames{en} = {"390522", "Reggio\ Emilia", "390344", "Como", "39013", "Alessandria", "390183", "Imperia", "390166", "Aosta\ Valley", "390574", "Prato", "390341", "Lecco", "390382", "Pavia", "390882", "Foggia", "390922", "Agrigento", "390444", "Vicenza", "390141", "Asti", "390523", "Piacenza", "390974", "Salerno", "390883", "Andria\ Barletta\ Trani", "390185", "Genoa", "390549", "San\ Marino", "3906698", "Vatican\ City", "390577", "Siena", "390376", "Mantua", "390961", "Catanzaro", "39033", "Varese", "390789", "Sassari", "390925", "Agrigento", "39070", "Cagliari", "390965", "Reggio\ Calabria", "39015", "Biella", "390445", "Vicenza", "39041", "Venice", "390921", "Palermo", "390975", "Potenza", "3906", "Rome", "39045", "Verona", "39050", "Pisa", "39011", "Turin", "390586", "Livorno", "390924", "Trapani", "390343", "Sondrio", "39049", "Padova", "390962", "Crotone", "390432", "Udine", "390187", "La\ Spezia", "390565", "Livorno", "390774", "Rome", "390521", "Parma", "390575", "Arezzo", "39081", "Naples", "39031", "Como", "390426", "Rovigo", "390884", "Foggia", "39090", "Messina", "39039", "Monza", "39085", "Pescara", "39048", "Gorizia", "390963", "Vibo\ Valentia", "390342", "Sondrio", "39089", "Salerno", "39035", "Bergamo", "390832", "Lecce", "390881", "Foggia", "390422", "Treviso", "390823", "Caserta", "390125", "Turin", "390171", "Cuneo", "390934", "Caltanissetta\ and\ Enna", "390161", "Vercelli", "390583", "Lucca", "390122", "Turin", "390425", "Rovigo", "390346", "Bergamo", "3902", "Milan", "390471", "Bolzano\/Bozen", "390733", "Macerata", "390461", "Trento", "390585", "Massa\-Carrara", "390364", "Brescia", "39071", "Ancona", "390735", "Ascoli\ Piceno", "390423", "Treviso", "390322", "Novara", "390874", "Campobasso", "390371", "Lodi", "39079", "Sassari", "390732", "Ancona", "39075", "Perugia", "390825", "Avellino", "390541", "Rimini", "390734", "Fermo", "390865", "Isernia", "390545", "Ravenna", "39010", "Genoa", "39051", "Bologna", "390321", "Novara", "390365", "Brescia", "390362", "Cremona\/Monza", "390933", "Caltanissetta", "390731", "Ancona", "390372", "Cremona", "390824", "Benevento", "39040", "Trieste", "39055", "Florence", "390324", "Verbano\-Cusio\-Ossola", "390532", "Ferrara", "39059", "Modena", "390862", "L\'Aquila", "390421", "Venice", "39091", "Palermo", "390424", "Vicenza", "39080", "Bari", "390543", "Forlì\-Cesena", "39095", "Catania", "390165", "Aosta\ Valley", "39099", "Taranto", "390776", "Frosinone", "390942", "Catania", "390737", "Macerata", "390363", "Bergamo", "390783", "Oristano", "390373", "Cremona", "39030", "Brescia",}; $areanames{it} = {"390142", "Casale\ Monferrato", "390445", "Schio", "390435", "Pieve\ di\ Cadore", "390736", "Ascoli\ Piceno", "390746", "Rieti", "390343", "Chiavenna", "390442", "Legnago", "390833", "Gallipoli", "390884", "Manfredonia", "390384", "Mortara", "390565", "Piombino", "39081", "Napoli", "390572", "Montecatini\ Terme", "390381", "Vigevano", "390973", "Lagonegro", "390524", "Fidenza", "390721", "Pesaro", "390775", "Frosinone", "390578", "Chianciano\ Terme", "390765", "Poggio\ Mirteto", "390344", "Menaggio", "390166", "Saint\-Vincent", "390831", "Brindisi", "390331", "Busto\ Arsizio", "390437", "Belluno", "390964", "Locri", "390182", "Albenga", "390974", "Vallo\ della\ Lucania", "390438", "Conegliano", "390383", "Voghera", "390789", "Olbia", "390925", "Sciacca", "390971", "Potenza", "390185", "Rapallo", "390883", "Andria", "3906698", "Città \ del\ Vaticano", "390549", "Repubblica\ di\ San\ Marino", "390546", "Faenza", "390536", "Sassuolo", "390375", "Casalmaggiore", "390427", "Spilimbergo", "390365", "Salò", "390584", "Viareggio", "390163", "Borgosesia", "390744", "Terni", "39010", "Genova", "390173", "Alba", "390875", "Termoli", "390872", "Lanciano", "390324", "Domodossola", "390731", "Jesi", "390362", "Seregno", "390463", "Cles", "390473", "Merano", "39055", "Firenze", "390935", "Enna", "390386", "Ostiglia", "390932", "Ragusa", "390942", "Taormina", "390543", "Forlì", "390533", "Comacchio", "390428", "Tarvisio", "390125", "Ivrea", "390474", "Brunico", "390464", "Rovereto", "390323", "Baveno", "390985", "Scalea", "390377", "Codogno", "390174", "Mondovì", "390982", "Paola", "390346", "Clusone", "3902", "Milano", "390471", "Bolzano", "390743", "Spoleto", "390122", "Susa", "390836", "Maglie", "390534", "Porretta\ Terme", "390544", "Ravenna", "390784", "Nuoro", "390781", "Iglesias", "390966", "Palmi", "390976", "Muro\ Lucano", "3906", "Roma", "39019", "Savona", "390965", "Reggio\ di\ Calabria", "39041", "Venezia", "390921", "Cefalù", "390975", "Sala\ Consilina", "390972", "Melfi", "390184", "Sanremo", "390573", "Pistoia", "39011", "Torino", "390924", "Alcamo", "390426", "Adria", "390345", "San\ Pellegrino\ Terme", "390429", "Este", "390722", "Urbino", "390774", "Tivoli", "390835", "Matera", "390143", "Novi\ Ligure", "390771", "Formia", "390433", "Tolmezzo", "390761", "Viterbo", "390332", "Varese", "390564", "Grosseto", "390923", "Trapani", "390385", "Stradella", "390522", "Reggio\ nell\'Emilia", "390885", "Cerignola", "390882", "San\ Severo", "390525", "Fornovo\ di\ Taro", "390571", "Empoli", "390967", "Soverato", "390434", "Pordenone", "390968", "Lamezia\ Terme", "390376", "Mantova", "390431", "Cervignano\ del\ Friuli", "390144", "Acqui\ Terme", "390763", "Orvieto", "390773", "Latina", "390588", "Volterra", "390785", "Macomer", "390545", "Lugo", "390535", "Mirandola", "390542", "Imola", "390933", "Caltagirone", "390828", "Battipaglia", "390782", "Lanusei", "390984", "Cosenza", "390172", "Savigliano", "390827", "Sant\'Angelo\ dei\ Lombardi", "390421", "San\ Donà \ di\ Piave", "390124", "Rivarolo\ Canavese", "390465", "Tione\ di\ Trento", "390776", "Cassino", "390462", "Cavalese", "390737", "Camerino", "390363", "Treviglio", "390766", "Civitavecchia", "390472", "Bressanone", "390981", "Castrovillari", "390373", "Crema", "390424", "Bassano\ del\ Grappa", "390121", "Pinerolo", "390175", "Saluzzo", "390873", "Vasto", "390587", "Pontedera", "390165", "Aosta", "390863", "Avezzano", "390934", "Caltanissetta", "390941", "Patti", "390931", "Siracusa", "390566", "Follonica", "390547", "Cesena", "390864", "Sulmona", "390735", "San\ Benedetto\ del\ Tronto", "390423", "Montebelluna", "390322", "Arona", "390374", "Soresina", "390585", "Massa", "390364", "Breno", "390861", "Teramo", "390123", "Lanzo\ Torinese", "390871", "Chieti", "390983", "Rossano", "390436", "Cortina\ d\'Ampezzo", "390439", "Feltre", "390742", "Foligno", "390732", "Fabriano",}; my $timezones = { '' => [ 'Europe/Rome', 'Europe/Vatican' ], '0' => [ 'Europe/Rome' ], '06698' => [ 'Europe/Vatican' ], '0878' => [ 'Europe/Rome', 'Europe/Vatican' ], '1' => [ 'Europe/Rome', 'Europe/Vatican' ], '3' => [ 'Europe/Rome', 'Europe/Vatican' ], '4' => [ 'Europe/Rome' ], '5' => [ 'Europe/Rome', 'Europe/Vatican' ], '7' => [ 'Europe/Rome' ], '8' => [ 'Europe/Rome', 'Europe/Vatican' ] }; sub new { my $class = shift; my $number = shift; $number =~ s/(^\+39|\D)//g; my $self = bless({ country_code => '39', number => $number, formatters => $formatters, validators => $validators, timezones => $timezones, areanames => \%areanames}, $class); return $self->is_valid() ? $self : undef; } 1;