File Coverage

blib/lib/Number/Phone/StubCountry/MX.pm
Criterion Covered Total %
statement 20 20 100.0
branch 3 4 75.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 29 30 96.6


line stmt bran cond sub pod time code
1             # automatically generated file, don't edit
2              
3              
4              
5             # Copyright 2023 David Cantrell, derived from data from libphonenumber
6             # http://code.google.com/p/libphonenumber/
7             #
8             # Licensed under the Apache License, Version 2.0 (the "License");
9             # you may not use this file except in compliance with the License.
10             # You may obtain a copy of the License at
11             #
12             # http://www.apache.org/licenses/LICENSE-2.0
13             #
14             # Unless required by applicable law or agreed to in writing, software
15             # distributed under the License is distributed on an "AS IS" BASIS,
16             # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17             # See the License for the specific language governing permissions and
18             # limitations under the License.
19             package Number::Phone::StubCountry::MX;
20 2     2   1374 use base qw(Number::Phone::StubCountry);
  2         12  
  2         231  
21              
22 2     2   26 use strict;
  2         6  
  2         54  
23 2     2   12 use warnings;
  2         7  
  2         54  
24 2     2   15 use utf8;
  2         9  
  2         19  
25             our $VERSION = 1.20230614174404;
26              
27             my $formatters = [
28             {
29             'format' => '$1',
30             'intl_format' => 'NA',
31             'leading_digits' => '53',
32             'pattern' => '(\\d{5})'
33             },
34             {
35             'format' => '$1 $2 $3',
36             'leading_digits' => '
37             33|
38             5[56]|
39             81
40             ',
41             'pattern' => '(\\d{2})(\\d{4})(\\d{4})'
42             },
43             {
44             'format' => '$1 $2 $3',
45             'leading_digits' => '[2-9]',
46             'pattern' => '(\\d{3})(\\d{3})(\\d{4})'
47             },
48             {
49             'format' => '$2 $3 $4',
50             'leading_digits' => '
51             1(?:
52             33|
53             5[56]|
54             81
55             )
56             ',
57             'pattern' => '(\\d)(\\d{2})(\\d{4})(\\d{4})'
58             },
59             {
60             'format' => '$2 $3 $4',
61             'leading_digits' => '1',
62             'pattern' => '(\\d)(\\d{3})(\\d{3})(\\d{4})'
63             }
64             ];
65              
66             my $validators = {
67             'fixed_line' => '
68             657[12]\\d{6}|
69             (?:
70             2(?:
71             0[01]|
72             2\\d|
73             3[1-35-8]|
74             4[13-9]|
75             7[1-689]|
76             8[1-578]|
77             9[467]
78             )|
79             3(?:
80             1[1-79]|
81             [2458][1-9]|
82             3\\d|
83             7[1-8]|
84             9[1-5]
85             )|
86             4(?:
87             1[1-57-9]|
88             [25-7][1-9]|
89             3[1-8]|
90             4\\d|
91             8[1-35-9]|
92             9[2-689]
93             )|
94             5(?:
95             [56]\\d|
96             88|
97             9[1-79]
98             )|
99             6(?:
100             1[2-68]|
101             [2-4][1-9]|
102             5[1-3689]|
103             6[1-57-9]|
104             7[1-7]|
105             8[67]|
106             9[4-8]
107             )|
108             7(?:
109             [13467][1-9]|
110             2\\d|
111             5[13-9]|
112             8[1-69]|
113             9[17]
114             )|
115             8(?:
116             1\\d|
117             2[13-689]|
118             3[1-6]|
119             4[124-6]|
120             6[1246-9]|
121             7[1-378]|
122             9[12479]
123             )|
124             9(?:
125             1[346-9]|
126             2[1-4]|
127             3[2-46-8]|
128             5[1348]|
129             6[1-9]|
130             7[12]|
131             8[1-8]|
132             9\\d
133             )
134             )\\d{7}
135             ',
136             'geographic' => '
137             657[12]\\d{6}|
138             (?:
139             2(?:
140             0[01]|
141             2\\d|
142             3[1-35-8]|
143             4[13-9]|
144             7[1-689]|
145             8[1-578]|
146             9[467]
147             )|
148             3(?:
149             1[1-79]|
150             [2458][1-9]|
151             3\\d|
152             7[1-8]|
153             9[1-5]
154             )|
155             4(?:
156             1[1-57-9]|
157             [25-7][1-9]|
158             3[1-8]|
159             4\\d|
160             8[1-35-9]|
161             9[2-689]
162             )|
163             5(?:
164             [56]\\d|
165             88|
166             9[1-79]
167             )|
168             6(?:
169             1[2-68]|
170             [2-4][1-9]|
171             5[1-3689]|
172             6[1-57-9]|
173             7[1-7]|
174             8[67]|
175             9[4-8]
176             )|
177             7(?:
178             [13467][1-9]|
179             2\\d|
180             5[13-9]|
181             8[1-69]|
182             9[17]
183             )|
184             8(?:
185             1\\d|
186             2[13-689]|
187             3[1-6]|
188             4[124-6]|
189             6[1246-9]|
190             7[1-378]|
191             9[12479]
192             )|
193             9(?:
194             1[346-9]|
195             2[1-4]|
196             3[2-46-8]|
197             5[1348]|
198             6[1-9]|
199             7[12]|
200             8[1-8]|
201             9\\d
202             )
203             )\\d{7}
204             ',
205             'mobile' => '
206             657[12]\\d{6}|
207             (?:
208             1(?:
209             2(?:
210             2[1-9]|
211             3[1-35-8]|
212             4[13-9]|
213             7[1-689]|
214             8[1-578]|
215             9[467]
216             )|
217             3(?:
218             1[1-79]|
219             [2458][1-9]|
220             3\\d|
221             7[1-8]|
222             9[1-5]
223             )|
224             4(?:
225             1[1-57-9]|
226             [24-7][1-9]|
227             3[1-8]|
228             8[1-35-9]|
229             9[2-689]
230             )|
231             5(?:
232             [56]\\d|
233             88|
234             9[1-79]
235             )|
236             6(?:
237             1[2-68]|
238             [2-4][1-9]|
239             5[1-3689]|
240             6[1-57-9]|
241             7[1-7]|
242             8[67]|
243             9[4-8]
244             )|
245             7(?:
246             [1-467][1-9]|
247             5[13-9]|
248             8[1-69]|
249             9[17]
250             )|
251             8(?:
252             1\\d|
253             2[13-689]|
254             3[1-6]|
255             4[124-6]|
256             6[1246-9]|
257             7[1-378]|
258             9[12479]
259             )|
260             9(?:
261             1[346-9]|
262             2[1-4]|
263             3[2-46-8]|
264             5[1348]|
265             [69][1-9]|
266             7[12]|
267             8[1-8]
268             )
269             )|
270             2(?:
271             2\\d|
272             3[1-35-8]|
273             4[13-9]|
274             7[1-689]|
275             8[1-578]|
276             9[467]
277             )|
278             3(?:
279             1[1-79]|
280             [2458][1-9]|
281             3\\d|
282             7[1-8]|
283             9[1-5]
284             )|
285             4(?:
286             1[1-57-9]|
287             [25-7][1-9]|
288             3[1-8]|
289             4\\d|
290             8[1-35-9]|
291             9[2-689]
292             )|
293             5(?:
294             [56]\\d|
295             88|
296             9[1-79]
297             )|
298             6(?:
299             1[2-68]|
300             [2-4][1-9]|
301             5[1-3689]|
302             6[1-57-9]|
303             7[1-7]|
304             8[67]|
305             9[4-8]
306             )|
307             7(?:
308             [13467][1-9]|
309             2\\d|
310             5[13-9]|
311             8[1-69]|
312             9[17]
313             )|
314             8(?:
315             1\\d|
316             2[13-689]|
317             3[1-6]|
318             4[124-6]|
319             6[1246-9]|
320             7[1-378]|
321             9[12479]
322             )|
323             9(?:
324             1[346-9]|
325             2[1-4]|
326             3[2-46-8]|
327             5[1348]|
328             6[1-9]|
329             7[12]|
330             8[1-8]|
331             9\\d
332             )
333             )\\d{7}
334             ',
335             'pager' => '',
336             'personal_number' => '500\\d{7}',
337             'specialrate' => '(300\\d{7})|(900\\d{7})',
338             'toll_free' => '
339             8(?:
340             00|
341             88
342             )\\d{7}
343             ',
344             'voip' => ''
345             };
346             my %areanames = ();
347             $areanames{es} = {"52641", "Benjamín\ Hill\/Santa\ Ana\,\ SON",
348             "52426", "Michoacán",
349             "52314", "Manzanillo\/Peña\ Colorada\,\ COL",
350             "52719", "San\ Francisco\ Xonacatlán\/Temoaya\,\ MEX",
351             "52716", "Estado\ de\ México",
352             "52443", "Morelia\/Tarímbaro\,\ MICH",
353             "52781", "Coyuca\ de\ Benítez\/San\ Jerónimo\ de\ Juárez\,\ GRO",
354             "52967", "San\ Cristóbal\ de\ las\ Casas\,\ CHIS",
355             "52453", "Apatzingán\,\ MICH",
356             "52423", "Michoacán",
357             "52459", "Michoacán",
358             "52791", "Ciudad\ Sahagún\,\ HGO",
359             "52449", "Aguascalientes\/Jesús\ María\,\ AGS",
360             "52766", "Gutiérrez\ Zamora\/Tecolutla\,\ VER",
361             "52877", "Ciudad\ Acuña\,\ COAH",
362             "52921", "Coatzacoalcos\/Ixhuatlán\ del\ Sureste\,\ VER",
363             "52383", "Michoacán",
364             "52476", "San\ Francisco\ del\ Rincón\,\ GTO",
365             "52341", "Ciudad\ Guzmán\,\ JAL",
366             "52756", "Chilapa\/Olinalá\,\ GRO",
367             "52591", "Estado\ de\ México",
368             "52469", "Buenavista\ de\ Cortés\/Pénjamo\,\ GTO",
369             "52351", "Ario\ de\ Rayón\/Zamora\,\ MICH",
370             "52494", "Jerez\ de\ García\ Salinas\,\ ZAC",
371             "52354", "Michoacán",
372             "52594", "Estado\ de\ México",
373             "5255", "Ciudad\ de\ México\,\ CDMX",
374             "52358", "Tamazula\/Zapotiltic\,\ JAL",
375             "52986", "Yucatán",
376             "52867", "Nuevo\ León\/Tamaulipas",
377             "52825", "Nuevo\ León",
378             "52317", "Autlán\/El\ Chante\,\ JAL",
379             "52595", "Estado\ de\ México",
380             "52438", "Michoacán",
381             "52355", "Michoacán",
382             "52729", "Estado\ de\ México",
383             "52434", "Michoacán",
384             "52753", "Michoacán",
385             "52328", "Michoacán",
386             "52342", "Gómez\ Farías\/Sayula\,\ JAL",
387             "52999", "Conkal\/Mérida\,\ YUC",
388             "52726", "Estado\ de\ México",
389             "52592", "Estado\ de\ México",
390             "52431", "Jalostotitlán\/Villa\ Obregón\,\ JAL",
391             "52714", "Estado\ de\ México",
392             "52718", "Estado\ de\ México",
393             "5258", "Estado\ de\ México",
394             "52442", "Querétaro",
395             "52765", "Álamo\ Temapache\/Alazán\/Potrero\ del\ Llano\,\ VER",
396             "52424", "Michoacán",
397             "5248", "San\ Luis\ Potosí",
398             "52997", "Yucatán",
399             "52711", "México\/Michoacán",
400             "52475", "Bajío\ de\ San\ José\/Encarnación\ de\ Diaz\,\ JAL",
401             "52892", "Nuevo\ León",
402             "52392", "Jamay\/Ocotlán\,\ JAL",
403             "52455", "Michoacán",
404             "52425", "Michoacán",
405             "52444", "San\ Luis\ Potosí\,\ SLP",
406             "52448", "Querétaro",
407             "52653", "Luis\ B\.\ Sánchez\/San\ Luis\ Río\ Colorado\,\ SON",
408             "52866", "Castaños\/Monclova\,\ COAH",
409             "52712", "Estado\ de\ México",
410             "52454", "Michoacán",
411             "52715", "Michoacán",
412             "52451", "Michoacán",
413             "52869", "Cuatro\ Ciénegas\/San\ Buenaventura\,\ COAH",
414             "52441", "Querétaro",
415             "52422", "Michoacán",
416             "52937", "Cárdenas\,\ TAB",
417             "52596", "Estado\ de\ México",
418             "52722", "Estado\ de\ México",
419             "52356", "Tanhuato\/Yurécuaro\,\ MICH",
420             "52995", "Magdalena\ Tequisistlán\/Santa\ Maria\ Jalapa\ del\ Marqués\,\ OAX",
421             "52447", "Contepec\/Maravatío\,\ MICH",
422             "52232", "La\ Vigueta\/Martínez\ de\ la\ Torre\,\ VER",
423             "52771", "Pachuca\/Real\ del\ Monte\,\ HGO",
424             "52988", "Yucatán",
425             "52477", "León\,\ GTO",
426             "52725", "Almoloya\ de\ Juárez\/Santa\ María\ del\ Monte\,\ MEX",
427             "52599", "Estado\ de\ México",
428             "52938", "Ciudad\ del\ Carmen\,\ CAMP",
429             "52823", "Nuevo\ León",
430             "52829", "Nuevo\ León",
431             "52353", "Michoacán",
432             "52593", "Estado\ de\ México",
433             "52238", "Santiago\ Miahuatlán\/Tehuacán\,\ PUE",
434             "52873", "Nuevo\ León",
435             "52717", "Estado\ de\ México",
436             "52966", "Arriaga\/Tonalá\,\ CHIS",
437             "52991", "Yucatán",
438             "52728", "Lerma\/Santa\ María\ Atarasquillo\,\ MEX",
439             "52284", "Ángel\ Rosario\ Cabada\/Lerdo\ de\ Tejada\,\ VER",
440             "52427", "México\/Quintana\ Roo",
441             "52632", "Ímuris\/Magdalena\,\ SON",
442             "52231", "Teteles\/Teziutlán\,\ PUE",
443             "52985", "Yucatán",
444             "52826", "Nuevo\ León",
445             "52418", "Dolores\ Hidalgo\/San\ Diego\ de\ la\ Unión\,\ GTO",};
446             $areanames{en} = {"52661", "Primo\ Tapia\/Rosarito\,\ BCN",
447             "52753", "Michoacan",
448             "52434", "Michoacan",
449             "52729", "Estado\ de\ Mexico",
450             "52375", "Ameca\,\ JAL",
451             "52996", "Campeche",
452             "52317", "Autlan\/El\ Chante\,\ JAL",
453             "52355", "Michoacan",
454             "52438", "Michoacan",
455             "52595", "Estado\ de\ Mexico",
456             "52773", "Hidalgo",
457             "52492", "Zacatecas",
458             "52824", "Sabinas\ Hidalgo\,\ NL",
459             "52633", "Sonora",
460             "52845", "Ebano\/Ponciano\ Arriaga\,\ SLP",
461             "52345", "Jalisco",
462             "52324", "Nayarit",
463             "52481", "Ciudad\ Valles\,\ SLP",
464             "52828", "Cadereyta\,\ NL",
465             "52743", "Hidalgo",
466             "52933", "Tabasco",
467             "52612", "La\ Paz\/Todos\ Santos\,\ BCS",
468             "52328", "Michoacan",
469             "52342", "Gomez\ Farias\/Sayula\,\ JAL",
470             "52821", "Hualahuises\/Linares\,\ NL",
471             "52321", "El\ Grullo\/El\ Limon\,\ JAL",
472             "52463", "Jalpa\/Tabasco\,\ ZAC",
473             "52842", "Coahuila",
474             "52419", "Guanajuato",
475             "52677", "Durango",
476             "52615", "Baja\ California\ Sur",
477             "52227", "Huejotzingo\/San\ Buenaventura\ Nealtican\,\ PUE",
478             "52236", "Oaxaca\/Puebla",
479             "5233", "Guadalajara\,\ JAL",
480             "52872", "Coahuila\/Durango",
481             "52647", "Sonora",
482             "52431", "Jalostotitlan\/Villa\ Obregon\,\ JAL",
483             "52592", "Estado\ de\ Mexico",
484             "52737", "Morelos",
485             "52726", "Estado\ de\ Mexico",
486             "52352", "La\ Piedad\,\ MICH",
487             "52668", "Sinaloa",
488             "52495", "Aguascalientes\/Jalisco",
489             "52999", "Conkal\/Merida\,\ YUC",
490             "52983", "Quintana\ Roo",
491             "52914", "Tabasco",
492             "52341", "Ciudad\ Guzman\,\ JAL",
493             "52993", "Tabasco",
494             "52841", "Tamaulipas",
495             "52322", "Jalisco",
496             "52618", "Colonia\ Hidalgo\/Durango\,\ DGO",
497             "52756", "Chilapa\/Olinala\,\ GRO",
498             "52918", "Chiapas",
499             "52247", "Huamantla\/San\ Cosme\ Xalostoc\,\ TLAX",
500             "52776", "Puebla",
501             "52283", "Veracruz",
502             "52614", "Chihuahua",
503             "52627", "Parral\,\ CHIH",
504             "52636", "Chihuahua",
505             "52432", "Ciudad\ Manuel\ Doblado\/Romita\,\ GTO",
506             "52871", "Coahuila",
507             "52498", "Zacatecas",
508             "52665", "Tecate\,\ BCN",
509             "52413", "Apaseo\ el\ Alto\/Apaseo\ el\ Grande\,\ GTO",
510             "52351", "Ario\ de\ Rayon\/Zamora\,\ MICH",
511             "52591", "Estado\ de\ Mexico",
512             "52469", "Buenavista\ de\ Cortez\/Penjamo\,\ GTO",
513             "52936", "Tabasco",
514             "52746", "Puebla\/Veracruz",
515             "52494", "Jerez\ de\ Garcia\ Salinas\,\ ZAC",
516             "52435", "Huetamo\/San\ Lucas\,\ MICH",
517             "52358", "Tamazula\/Zapoltitic\,\ JAL",
518             "52662", "Sonora",
519             "52749", "Calpulalpan\,\ TLAX",
520             "52797", "Puebla",
521             "52466", "Guanajuato",
522             "52594", "Estado\ de\ Mexico",
523             "52354", "Michoacan",
524             "52639", "Chihuahua",
525             "52233", "Puebla",
526             "52878", "Piedras\ Negras\,\ COAH",
527             "5255", "Mexico\ City\,\ FD",
528             "52344", "Mexticacan\/Yahualica\,\ JAL",
529             "52686", "Baja\ California",
530             "52779", "Tizayuca\,\ HGO",
531             "52325", "Acaponeta\,\ NAY",
532             "52867", "Nuevo\ Laredo\/Tamaulipas",
533             "52825", "Nuevo\ Leon",
534             "52844", "Saltillo\,\ COAH",
535             "52296", "Veracruz",
536             "52348", "Jalisco",
537             "52723", "Coatepec\ Harinas\,\ MEX",
538             "52759", "Hidalgo",
539             "52986", "Yucatan",
540             "52225", "Tlapacoyan\,\ VER",
541             "526572", "Juarez\/Chihuahua",
542             "52782", "Poza\ Rica\,\ VER",
543             "52244", "Puebla",
544             "52459", "Michoacan",
545             "52423", "Michoacan",
546             "52861", "Nueva\ Rosita\/Sabinas\,\ COAH",
547             "52248", "Puebla",
548             "52675", "Durango",
549             "52917", "Tabasco",
550             "52924", "Veracruz",
551             "52735", "Cuautla\/Jonacatepec\,\ MOR",
552             "52449", "Aguascalientes\/Jesus\ Maria\,\ AGS",
553             "52312", "Colima\/Los\ Tepames\,\ COL",
554             "52628", "Chihuahua",
555             "52274", "Oaxaca",
556             "52766", "Gutierrez\ Zamora\/Tecolutla\,\ VER",
557             "52791", "Ciudad\ Sahagun\,\ HGO",
558             "52624", "Baja\ California\ Sur",
559             "52278", "Veracruz",
560             "52833", "Tampico\,\ TAMPS",
561             "52645", "Cananea\,\ SON",
562             "52315", "Jalisco",
563             "52921", "Coatzacoalcos\/Ixhuatlan\ Del\ Sureste\,\ VER",
564             "52357", "Jalisco",
565             "52271", "Veracruz",
566             "52732", "Guerrero",
567             "52713", "Santiago\ Tianguistenco\,\ MEX",
568             "52642", "Navojoa\/Pueblo\ Mayo\,\ SON",
569             "52769", "Morelos",
570             "52877", "Ciudad\ Acuna\,\ COAH",
571             "52377", "Cocula\/Estipac\,\ JAL",
572             "52621", "Chihuahua",
573             "52785", "Veracruz",
574             "52222", "Puebla",
575             "52652", "Chihuahua",
576             "52241", "Tlaxcala",
577             "52868", "Tamaulipas",
578             "52456", "Valle\ de\ Santiago\,\ GTO",
579             "52383", "Michoacan",
580             "52899", "Tamaulipas",
581             "52672", "Sinaloa",
582             "52347", "Jalisco",
583             "52864", "Coahuila",
584             "52476", "San\ Francisco\ Del\ Rincon\,\ GTO",
585             "52922", "Veracruz",
586             "52393", "Jalisco",
587             "52314", "Manzanillo\/Pena\ Colorada\,\ COL",
588             "52272", "Maltrata\/Orizaba\,\ VER",
589             "52731", "Morelos",
590             "52389", "Nayarit",
591             "52426", "Michoacan",
592             "52990", "Merida",
593             "52437", "Jalisco\/Zacatecas",
594             "52641", "Benjamin\ Hill\/Santa\ Ana\,\ SON",
595             "52622", "Guaymas\/San\ Carlos\,\ SON",
596             "52651", "Sonoita\,\ SON",
597             "52221", "Puebla",
598             "52763", "Tezontepec\ de\ Aldama\/Tlahuelilpan\,\ HGO",
599             "52784", "Veracruz",
600             "52719", "San\ Francisco\ Xonacatlan\/Temoaya\,\ MEX",
601             "52671", "Durango",
602             "52327", "Nayarit",
603             "52836", "Tamaulipas",
604             "52224", "Puebla",
605             "52245", "Puebla",
606             "5269", "Sinaloa",
607             "52781", "Coyuca\ de\ Benitez\/San\ Jeronimo\ de\ Juarez\,\ GRO",
608             "52228", "Jalapa\/Tuzamapan\,\ VER",
609             "52674", "Durango",
610             "52658", "Baja\ California",
611             "52716", "Estado\ de\ Mexico",
612             "52443", "Morelia\/Tarimbaro\,\ MICH",
613             "52862", "Coahuila",
614             "52648", "Boquilla\/Ciudad\ Camargo\,\ CHIH",
615             "52967", "San\ Cristobal\ de\ las\ Casas\,\ CHIS",
616             "52275", "Puebla",
617             "52429", "Guanajuato",
618             "52734", "Morelos",
619             "52453", "Apatzingan\,\ MICH",
620             "52720", "Toluca",
621             "52311", "Nayarit",
622             "52625", "Chihuahua",
623             "52644", "Sonora",
624             "52386", "Jalisco",
625             "52473", "Guanajuato\,\ GTO",
626             "52738", "Mixquiahuala\/Tepatepec\,\ HGO",
627             "52667", "Sinaloa",
628             "52717", "Estado\ de\ Mexico",
629             "52238", "Santiago\ Miahuatlan\/Tehuacan\,\ PUE",
630             "52873", "Nuevo\ Leon",
631             "52755", "Ixtapa\/Zihuatanejo\,\ GRO",
632             "52220", "Puebla",
633             "52829", "Nuevo\ Leon",
634             "5281", "Monterrey\,\ NL",
635             "52982", "Campeche",
636             "52593", "Estado\ de\ Mexico",
637             "52775", "Tulancingo\,\ HGO",
638             "52329", "Nayarit",
639             "52353", "Michoacan",
640             "52411", "Guanajuato",
641             "52462", "Irapuato\,\ GTO",
642             "52387", "Jalisco",
643             "52635", "Chihuahua",
644             "52991", "Yucatan",
645             "52343", "Jalisco",
646             "52728", "Lerma\/Santa\ Maria\ Atarasquillo\,\ MEX",
647             "52966", "Arriaga\/Tonala\,\ CHIS",
648             "52281", "Loma\ Bonita\,\ OAX",
649             "52745", "Guerrero",
650             "52724", "Luvianos\/Tejupilco\ de\ Hidalgo\,\ MEX",
651             "52994", "Oaxaca",
652             "52288", "Veracruz",
653             "52427", "Mexico\/Quintana\ Roo",
654             "52436", "Zacapu\,\ MICH",
655             "52969", "Flamboyanes\/Yucalpeten\,\ YUC",
656             "52465", "Aguascalientes",
657             "52913", "Tabasco",
658             "52632", "Imuris\/Magdalena\,\ SON",
659             "5295", "Oaxaca",
660             "52998", "Quintana\ Roo",
661             "52742", "Guerrero",
662             "52669", "Sinaloa",
663             "52284", "Angel\ Rosario\ Cabada\/Lerdo\ de\ Tejada\,\ VER",
664             "52932", "Chiapas\/Tabasco",
665             "52613", "Baja\ California\ Sur",
666             "52721", "Ixtapan\ de\ la\ Sal\,\ MEX",
667             "5297", "Oaxaca",
668             "52326", "Jalisco",
669             "52418", "Dolores\ Hidalgo\/San\ Diego\ de\ la\ Union\,\ GTO",
670             "52826", "Nuevo\ Leon",
671             "52231", "Teteles\/Teziutlan\,\ PUE",
672             "52772", "Actopan\,\ HGO",
673             "52493", "Fresnillo\,\ ZAC",
674             "52414", "Tequisquiapan\,\ QRO",
675             "52985", "Yucatan",
676             "52464", "Salamanca\,\ GTO",
677             "52499", "Jalisco\/Zacatecas",
678             "52995", "Magdalena\ Tequisistlan\/Santa\ Maria\ Jalapa\ Del\ Marquez\,\ OAX",
679             "52631", "Nogales\,\ SON",
680             "52447", "Contepec\/Maravatio\,\ MICH",
681             "52468", "San\ Luis\ de\ la\ Paz\,\ GTO",
682             "52741", "Guerrero",
683             "52356", "Tanhuato\/Yurecuaro\,\ MICH",
684             "52722", "Estado\ de\ Mexico",
685             "52285", "Veracruz",
686             "52596", "Estado\ de\ Mexico",
687             "52294", "Veracruz",
688             "52846", "Veracruz",
689             "52988", "Yucatan",
690             "52751", "Morelos",
691             "52477", "Leon\,\ GTO",
692             "52346", "Jalisco\/Zacatecas",
693             "52415", "San\ Miguel\ Allende\,\ GTO",
694             "52919", "Chiapas",
695             "52232", "La\ Vigueta\/Martinez\ de\ la\ Torre\,\ VER",
696             "52771", "Pachuca\/Real\ Del\ Monte\,\ HGO",
697             "52984", "Quintana\ Roo",
698             "52457", "Jalisco\/Zacatecas",
699             "52754", "Guerrero",
700             "52433", "Zacatecas",
701             "52778", "Hidalgo",
702             "52916", "Chiapas",
703             "52758", "Petatlan\/San\ Jeronimito\,\ GRO",
704             "52981", "Campeche\,\ CAMP",
705             "52616", "Baja\ California",
706             "52774", "Hidalgo",
707             "52349", "Jalisco",
708             "52897", "Tamaulipas",
709             "52412", "Guanajuato",
710             "52235", "Veracruz",
711             "52992", "Chiapas",
712             "52748", "Hidalgo",
713             "52323", "Nayarit",
714             "52938", "Ciudad\ Del\ Carmen\,\ CAMP",
715             "52599", "Estado\ de\ Mexico",
716             "52461", "Guanajuato",
717             "52823", "Nuevo\ Leon",
718             "52634", "Sonora",
719             "52496", "Zacatecas",
720             "52744", "Acapulco\/Xaltianguis\,\ GRO",
721             "52282", "Puebla\/Veracruz",
722             "52725", "Almoloya\ de\ Juarez\/Santa\ Maria\ Del\ Monte\,\ MEX",
723             "52934", "Tabasco",
724             "52767", "Guerrero",
725             "52638", "Puerto\ Penasco\,\ SON",
726             "52448", "Queretaro",
727             "52761", "Hidalgo",
728             "52223", "Puebla",
729             "52629", "Chihuahua",
730             "526571", "Chihuahua",
731             "52653", "Luis\ B\.\ Sanchez\/San\ Luis\ Rio\ Colorado\,\ SON",
732             "52444", "San\ Luis\ Potosi\,\ SLP",
733             "52425", "Michoacan",
734             "52382", "Jalisco",
735             "52467", "Zacatecas",
736             "52279", "Veracruz",
737             "52673", "Sinaloa",
738             "52478", "Calera\ Victor\ Rosales\,\ ZAC",
739             "52733", "Iguala\,\ GRO",
740             "52454", "Michoacan",
741             "52891", "Tamaulipas",
742             "52391", "Jalisco",
743             "52987", "Cozumel\,\ QRO",
744             "52474", "Lagos\ de\ Moreno\/Paso\ de\ Cuarenta\,\ JAL",
745             "52866", "Castanos\/Monclova\,\ COAH",
746             "52458", "Zacatecas",
747             "52687", "Sinaloa",
748             "52712", "Estado\ de\ Mexico",
749             "52297", "Alvarado\,\ VER",
750             "52249", "Puebla",
751             "52643", "Sonora",
752             "52835", "Tamaulipas",
753             "52246", "Tlaxcala",
754             "52313", "Colima",
755             "52894", "Santa\ Apolonia\/Valle\ Hermoso\,\ TAMPS",
756             "52451", "Michoacan",
757             "52777", "Morelos",
758             "52869", "Cuatro\ Cienegas\/San\ Buenaventura\,\ COAH",
759             "52394", "Cotija\ de\ la\ Paz\,\ MICH",
760             "52715", "Michoacan",
761             "5237", "Jalisco",
762             "52832", "Tamaulipas",
763             "52471", "Purepero\/Tlazazalca\,\ MICH",
764             "52757", "Huamuxtitlan\/Tlapa\ de\ Comonfort\,\ GRO",
765             "52764", "Puebla",
766             "52783", "Tuxpan\,\ VER",
767             "52276", "Puebla",
768             "52747", "Guerrero",
769             "52937", "Cardenas\,\ TAB",
770             "52768", "Veracruz",
771             "52385", "Jalisco",
772             "52626", "Ojinaga\,\ CHIH",
773             "52637", "Altar\/Caborca\,\ SON",
774             "52441", "Queretaro",
775             "52422", "Michoacan",
776             "52452", "Nuevo\ San\ Juan\ Parangaricutiro\/Uruapan\,\ MICH",
777             "52395", "Jalisco",
778             "52718", "Estado\ de\ Mexico",
779             "52656", "Chihuahua",
780             "52226", "Altotonga\/Jalacingo\,\ VER",
781             "52237", "Puebla",
782             "52472", "Silao\,\ GTO",
783             "52831", "Ciudad\ Mante\/Los\ Aztecas\,\ TAMPS",
784             "52714", "Estado\ de\ Mexico",
785             "52676", "Durango",
786             "52789", "Veracruz",
787             "52736", "Guerrero",
788             "52727", "Guerrero",
789             "52765", "Alamo\ Temapache\/Alazan\/Potrero\ Del\ Llano\,\ VER",
790             "52388", "Jalisco",
791             "52442", "Queretaro",
792             "5258", "Estado\ de\ Mexico",
793             "52421", "Guanajuato",
794             "52384", "Tala\/Teuchitlan\,\ JAL",
795             "52646", "Baja\ California",
796             "52319", "Nayarit",
797             "52762", "Taxco\,\ GRO",
798             "52649", "Chihuahua\/Durango",
799             "52316", "Jalisco",
800             "52243", "Puebla",
801             "52428", "Ocampo\/San\ Felipe\,\ GTO",
802             "52287", "Oaxaca",
803             "5248", "San\ Luis\ Potosi",
804             "52997", "Yucatan",
805             "52445", "Moroleon\,\ GTO",
806             "52739", "Huitzilac\/Tepoztlan\,\ MOR",
807             "52424", "Michoacan",
808             "52381", "Cojumatlan\/San\ Jose\ de\ Gracia\,\ MICH",
809             "52417", "Guanajuato",
810             "52892", "Nuevo\ Leon",
811             "52273", "Veracruz",
812             "52786", "Ciudad\ Hidalgo\/Tuxpan\,\ MICH",
813             "52455", "Michoacan",
814             "52923", "Tabasco\/Veracruz",
815             "5296", "Chiapas",
816             "52392", "Jamay\/Ocotlan\,\ JAL",
817             "52659", "Chihuahua",
818             "52623", "Sonora",
819             "52834", "Ciudad\ Victoria\,\ TAMPS",
820             "52229", "Veracruz\,\ VER",
821             "52475", "Bajio\ de\ San\ Jose\/Encarnacion\ de\ Diaz\,\ JAL",
822             "52711", "Mexico\/Michoacan",};
823              
824             sub new {
825 19     19 1 41 my $class = shift;
826 19         50 my $number = shift;
827 19         172 $number =~ s/(^\+52|\D)//g;
828 19         118 my $self = bless({ country_code => '52', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
829 19 100       129 return $self if ($self->is_valid());
830 1         4 $number =~ s/^(?:0(?:[12]|4[45])|1)//;
831 1         16 $self = bless({ country_code => '52', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
832 1 50       8 return $self->is_valid() ? $self : undef;
833             }
834             1;