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   1375 use base qw(Number::Phone::StubCountry);
  2         7  
  2         291  
21              
22 2     2   26 use strict;
  2         7  
  2         61  
23 2     2   19 use warnings;
  2         5  
  2         77  
24 2     2   20 use utf8;
  2         6  
  2         90  
25             our $VERSION = 1.20230903131448;
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} = {"52722", "Estado\ de\ México",
348             "52232", "La\ Vigueta\/Martínez\ de\ la\ Torre\,\ VER",
349             "52231", "Teteles\/Teziutlán\,\ PUE",
350             "52354", "Michoacán",
351             "52426", "Michoacán",
352             "52866", "Castaños\/Monclova\,\ COAH",
353             "52873", "Nuevo\ León",
354             "52593", "Estado\ de\ México",
355             "52477", "León\,\ GTO",
356             "52418", "Dolores\ Hidalgo\/San\ Diego\ de\ la\ Unión\,\ GTO",
357             "52729", "Estado\ de\ México",
358             "52443", "Morelia\/Tarímbaro\,\ MICH",
359             "52715", "Michoacán",
360             "52392", "Jamay\/Ocotlán\,\ JAL",
361             "5255", "Ciudad\ de\ México\,\ CDMX",
362             "52825", "Nuevo\ León",
363             "52791", "Ciudad\ Sahagún\,\ HGO",
364             "52448", "Querétaro",
365             "52351", "Ario\ de\ Rayón\/Zamora\,\ MICH",
366             "52425", "Michoacán",
367             "52591", "Estado\ de\ México",
368             "52592", "Estado\ de\ México",
369             "52358", "Tamazula\/Zapotiltic\,\ JAL",
370             "52441", "Querétaro",
371             "52442", "Querétaro",
372             "52449", "Aguascalientes\/Jesús\ María\,\ AGS",
373             "52599", "Estado\ de\ México",
374             "52753", "Michoacán",
375             "52641", "Benjamín\ Hill\/Santa\ Ana\,\ SON",
376             "52877", "Ciudad\ Acuña\,\ COAH",
377             "52995", "Magdalena\ Tequisistlán\/Santa\ Maria\ Jalapa\ del\ Marqués\,\ OAX",
378             "52716", "Estado\ de\ México",
379             "52447", "Contepec\/Maravatío\,\ MICH",
380             "5248", "San\ Luis\ Potosí",
381             "52966", "Arriaga\/Tonalá\,\ CHIS",
382             "52353", "Michoacán",
383             "52826", "Nuevo\ León",
384             "52594", "Estado\ de\ México",
385             "52238", "Santiago\ Miahuatlán\/Tehuacán\,\ PUE",
386             "52455", "Michoacán",
387             "52988", "Yucatán",
388             "52728", "Lerma\/Santa\ María\ Atarasquillo\,\ MEX",
389             "52444", "San\ Luis\ Potosí\,\ SLP",
390             "52328", "Michoacán",
391             "52711", "México\/Michoacán",
392             "52712", "Estado\ de\ México",
393             "52438", "Michoacán",
394             "52829", "Nuevo\ León",
395             "52469", "Buenavista\ de\ Cortés\/Pénjamo\,\ GTO",
396             "52453", "Apatzingán\,\ MICH",
397             "52355", "Michoacán",
398             "52475", "Bajío\ de\ San\ José\/Encarnación\ de\ Diaz\,\ JAL",
399             "52719", "San\ Francisco\ Xonacatlán\/Temoaya\,\ MEX",
400             "52938", "Ciudad\ del\ Carmen\,\ CAMP",
401             "52766", "Gutiérrez\ Zamora\/Tecolutla\,\ VER",
402             "52717", "Estado\ de\ México",
403             "52653", "Luis\ B\.\ Sánchez\/San\ Luis\ Río\ Colorado\,\ SON",
404             "52596", "Estado\ de\ México",
405             "52383", "Michoacán",
406             "52341", "Ciudad\ Guzmán\,\ JAL",
407             "52342", "Gómez\ Farías\/Sayula\,\ JAL",
408             "52725", "Almoloya\ de\ Juárez\/Santa\ María\ del\ Monte\,\ MEX",
409             "52967", "San\ Cristóbal\ de\ las\ Casas\,\ CHIS",
410             "52892", "Nuevo\ León",
411             "52985", "Yucatán",
412             "52317", "Autlán\/El\ Chante\,\ JAL",
413             "52714", "Estado\ de\ México",
414             "52314", "Manzanillo\/Peña\ Colorada\,\ COL",
415             "52423", "Michoacán",
416             "52823", "Nuevo\ León",
417             "52434", "Michoacán",
418             "52459", "Michoacán",
419             "52867", "Nuevo\ León\/Tamaulipas",
420             "52427", "México\/Quintana\ Roo",
421             "52991", "Yucatán",
422             "52937", "Cárdenas\,\ TAB",
423             "52771", "Pachuca\/Real\ del\ Monte\,\ HGO",
424             "52999", "Conkal\/Mérida\,\ YUC",
425             "52756", "Chilapa\/Olinalá\,\ GRO",
426             "52765", "Álamo\ Temapache\/Alazán\/Potrero\ del\ Llano\,\ VER",
427             "52284", "Ángel\ Rosario\ Cabada\/Lerdo\ de\ Tejada\,\ VER",
428             "52424", "Michoacán",
429             "52632", "Ímuris\/Magdalena\,\ SON",
430             "52356", "Tanhuato\/Yurécuaro\,\ MICH",
431             "52476", "San\ Francisco\ del\ Rincón\,\ GTO",
432             "52451", "Michoacán",
433             "52726", "Estado\ de\ México",
434             "52986", "Yucatán",
435             "52494", "Jerez\ de\ García\ Salinas\,\ ZAC",
436             "52454", "Michoacán",
437             "52595", "Estado\ de\ México",
438             "52997", "Yucatán",
439             "52422", "Michoacán",
440             "52781", "Coyuca\ de\ Benítez\/San\ Jerónimo\ de\ Juárez\,\ GRO",
441             "52921", "Coatzacoalcos\/Ixhuatlán\ del\ Sureste\,\ VER",
442             "52431", "Jalostotitlán\/Villa\ Obregón\,\ JAL",
443             "52869", "Cuatro\ Ciénegas\/San\ Buenaventura\,\ COAH",
444             "52718", "Estado\ de\ México",
445             "5258", "Estado\ de\ México",};
446             $areanames{en} = {"52614", "Chihuahua",
447             "52826", "Nuevo\ Leon",
448             "52466", "Guanajuato",
449             "52594", "Estado\ de\ Mexico",
450             "52455", "Michoacan",
451             "52238", "Santiago\ Miahuatlan\/Tehuacan\,\ PUE",
452             "52728", "Lerma\/Santa\ Maria\ Atarasquillo\,\ MEX",
453             "52988", "Yucatan",
454             "52635", "Chihuahua",
455             "52419", "Guanajuato",
456             "52375", "Ameca\,\ JAL",
457             "52761", "Hidalgo",
458             "52649", "Chihuahua\/Durango",
459             "52495", "Aguascalientes\/Jalisco",
460             "52762", "Taxco\,\ GRO",
461             "52775", "Tulancingo\,\ HGO",
462             "52328", "Michoacan",
463             "52444", "San\ Luis\ Potosi\,\ SLP",
464             "52642", "Navojoa\/Pueblo\ Mayo\,\ SON",
465             "52769", "Morelos",
466             "52641", "Benjamin\ Hill\/Santa\ Ana\,\ SON",
467             "5281", "Monterrey\,\ NL",
468             "52877", "Ciudad\ Acuna\,\ COAH",
469             "52275", "Puebla",
470             "52995", "Magdalena\ Tequisistlan\/Santa\ Maria\ Jalapa\ Del\ Marquez\,\ OAX",
471             "5233", "Guadalajara\,\ JAL",
472             "52716", "Estado\ de\ Mexico",
473             "52393", "Jalisco",
474             "52753", "Michoacan",
475             "52353", "Michoacan",
476             "52473", "Guanajuato\,\ GTO",
477             "52836", "Tamaulipas",
478             "52447", "Contepec\/Maravatio\,\ MICH",
479             "52919", "Chiapas",
480             "5248", "San\ Luis\ Potosi",
481             "52228", "Jalapa\/Tuzamapan\,\ VER",
482             "52316", "Jalisco",
483             "52738", "Mixquiahuala\/Tepatepec\,\ HGO",
484             "52625", "Chihuahua",
485             "52412", "Guanajuato",
486             "52966", "Arriaga\/Tonala\,\ CHIS",
487             "52411", "Guanajuato",
488             "52449", "Aguascalientes\/Jesus\ Maria\,\ AGS",
489             "5297", "Oaxaca",
490             "52917", "Tabasco",
491             "52385", "Jalisco",
492             "52723", "Coatepec\ Harinas\,\ MEX",
493             "52983", "Quintana\ Roo",
494             "52644", "Sonora",
495             "52233", "Puebla",
496             "52599", "Estado\ de\ Mexico",
497             "52323", "Nayarit",
498             "52414", "Tequisquiapan\,\ QRO",
499             "52720", "Toluca",
500             "52435", "Huetamo\/San\ Lucas\,\ MICH",
501             "52246", "Tlaxcala",
502             "52767", "Guerrero",
503             "52785", "Veracruz",
504             "52673", "Sinaloa",
505             "52591", "Estado\ de\ Mexico",
506             "52914", "Tabasco",
507             "52592", "Estado\ de\ Mexico",
508             "52220", "Puebla",
509             "52758", "Petatlan\/San\ Jeronimito\,\ GRO",
510             "52612", "La\ Paz\/Todos\ Santos\,\ BCS",
511             "52425", "Michoacan",
512             "52285", "Veracruz",
513             "52872", "Coahuila\/Durango",
514             "52746", "Puebla\/Veracruz",
515             "52647", "Sonora",
516             "52871", "Coahuila",
517             "52358", "Tamazula\/Zapoltitic\,\ JAL",
518             "52478", "Calera\ Victor\ Rosales\,\ ZAC",
519             "52417", "Guanajuato",
520             "52441", "Queretaro",
521             "52442", "Queretaro",
522             "52346", "Jalisco\/Zacatecas",
523             "52733", "Iguala\,\ GRO",
524             "52223", "Puebla",
525             "52764", "Puebla",
526             "52643", "Sonora",
527             "52984", "Quintana\ Roo",
528             "52724", "Luvianos\/Tejupilco\ de\ Hidalgo\,\ MEX",
529             "52878", "Piedras\ Negras\,\ COAH",
530             "52391", "Jalisco",
531             "52392", "Jamay\/Ocotlan\,\ JAL",
532             "52496", "Zacatecas",
533             "52751", "Morelos",
534             "52842", "Coahuila",
535             "52776", "Puebla",
536             "52677", "Durango",
537             "52618", "Colonia\ Hidalgo\/Durango\,\ DGO",
538             "52841", "Tamaulipas",
539             "52825", "Nuevo\ Leon",
540             "52465", "Aguascalientes",
541             "52791", "Ciudad\ Sahagun\,\ HGO",
542             "52448", "Queretaro",
543             "52456", "Valle\ de\ Santiago\,\ GTO",
544             "52471", "Purepero\/Tlazazalca\,\ MICH",
545             "52352", "La\ Piedad\,\ MICH",
546             "52636", "Chihuahua",
547             "52737", "Morelos",
548             "52472", "Silao\,\ GTO",
549             "52351", "Ario\ de\ Rayon\/Zamora\,\ MICH",
550             "52227", "Huejotzingo\/San\ Buenaventura\ Nealtican\,\ PUE",
551             "5255", "Mexico\ City\,\ FD",
552             "52324", "Nayarit",
553             "52413", "Apaseo\ el\ Alto\/Apaseo\ el\ Grande\,\ GTO",
554             "52835", "Tamaulipas",
555             "526571", "Chihuahua",
556             "52315", "Jalisco",
557             "52626", "Ojinaga\,\ CHIH",
558             "52727", "Guerrero",
559             "52987", "Cozumel\,\ QRO",
560             "52237", "Puebla",
561             "52674", "Durango",
562             "52913", "Tabasco",
563             "52224", "Puebla",
564             "52734", "Morelos",
565             "52763", "Tezontepec\ de\ Aldama\/Tlahuelilpan\,\ HGO",
566             "52327", "Nayarit",
567             "52276", "Puebla",
568             "52996", "Campeche",
569             "52759", "Hidalgo",
570             "52715", "Michoacan",
571             "52329", "Nayarit",
572             "52672", "Sinaloa",
573             "52757", "Huamuxtitlan\/Tlapa\ de\ Comonfort\,\ GRO",
574             "52656", "Chihuahua",
575             "52671", "Durango",
576             "52436", "Zacapu\,\ MICH",
577             "52593", "Estado\ de\ Mexico",
578             "52245", "Puebla",
579             "52786", "Ciudad\ Hidalgo\/Tuxpan\,\ MICH",
580             "52648", "Boquilla\/Ciudad\ Camargo\,\ CHIH",
581             "52687", "Sinaloa",
582             "52665", "Tecate\,\ BCN",
583             "52294", "Veracruz",
584             "52613", "Baja\ California\ Sur",
585             "52873", "Nuevo\ Leon",
586             "52443", "Morelia\/Tarimbaro\,\ MICH",
587             "52477", "Leon\,\ GTO",
588             "52418", "Dolores\ Hidalgo\/San\ Diego\ de\ la\ Union\,\ GTO",
589             "52732", "Guerrero",
590             "52222", "Puebla",
591             "52729", "Estado\ de\ Mexico",
592             "52731", "Morelos",
593             "52221", "Puebla",
594             "52357", "Jalisco",
595             "52481", "Ciudad\ Valles\,\ SLP",
596             "52797", "Puebla",
597             "52386", "Jalisco",
598             "52394", "Cotija\ de\ la\ Paz\,\ MICH",
599             "52844", "Saltillo\,\ COAH",
600             "52754", "Guerrero",
601             "52982", "Campeche",
602             "52722", "Estado\ de\ Mexico",
603             "52232", "La\ Vigueta\/Martinez\ de\ la\ Torre\,\ VER",
604             "52981", "Campeche\,\ CAMP",
605             "52739", "Huitzilac\/Tepoztlan\,\ MOR",
606             "52721", "Ixtapan\ de\ la\ Sal\,\ MEX",
607             "52231", "Teteles\/Teziutlan\,\ PUE",
608             "52229", "Veracruz\,\ VER",
609             "52918", "Chiapas",
610             "52345", "Jalisco",
611             "52297", "Alvarado\,\ VER",
612             "52321", "El\ Grullo\/El\ Limon\,\ JAL",
613             "52322", "Jalisco",
614             "52866", "Castanos\/Monclova\,\ COAH",
615             "52426", "Michoacan",
616             "52745", "Guerrero",
617             "52936", "Tabasco",
618             "52768", "Veracruz",
619             "52354", "Michoacan",
620             "52474", "Lagos\ de\ Moreno\/Paso\ de\ Cuarenta\,\ JAL",
621             "52922", "Veracruz",
622             "52782", "Poza\ Rica\,\ VER",
623             "52921", "Coatzacoalcos\/Ixhuatlan\ Del\ Sureste\,\ VER",
624             "52781", "Coyuca\ de\ Benitez\/San\ Jeronimo\ de\ Juarez\,\ GRO",
625             "52651", "Sonoita\,\ SON",
626             "52676", "Durango",
627             "52429", "Guanajuato",
628             "52869", "Cuatro\ Cienegas\/San\ Buenaventura\,\ COAH",
629             "52431", "Jalostotitlan\/Villa\ Obregon\,\ JAL",
630             "52652", "Chihuahua",
631             "52777", "Morelos",
632             "52718", "Estado\ de\ Mexico",
633             "52432", "Ciudad\ Manuel\ Doblado\/Romita\,\ GTO",
634             "52624", "Baja\ California\ Sur",
635             "52743", "Hidalgo",
636             "52994", "Oaxaca",
637             "52274", "Oaxaca",
638             "52343", "Jalisco",
639             "5258", "Estado\ de\ Mexico",
640             "52381", "Cojumatlan\/San\ Jose\ de\ Gracia\,\ MICH",
641             "52382", "Jalisco",
642             "52736", "Guerrero",
643             "52226", "Altotonga\/Jalacingo\,\ VER",
644             "52377", "Cocula\/Estipac\,\ JAL",
645             "5296", "Chiapas",
646             "52457", "Jalisco\/Zacatecas",
647             "52637", "Altar\/Caborca\,\ SON",
648             "52774", "Hidalgo",
649             "52494", "Jerez\ de\ Garcia\ Salinas\,\ ZAC",
650             "52389", "Nayarit",
651             "52468", "San\ Luis\ de\ la\ Paz\,\ GTO",
652             "52828", "Cadereyta\,\ NL",
653             "52445", "Moroleon\,\ GTO",
654             "52986", "Yucatan",
655             "52726", "Estado\ de\ Mexico",
656             "52236", "Oaxaca\/Puebla",
657             "52627", "Parral\,\ CHIH",
658             "52282", "Puebla\/Veracruz",
659             "52932", "Chiapas\/Tabasco",
660             "52281", "Loma\ Bonita\,\ OAX",
661             "52789", "Veracruz",
662             "52659", "Chihuahua",
663             "52861", "Nueva\ Rosita\/Sabinas\,\ COAH",
664             "52421", "Guanajuato",
665             "52326", "Jalisco",
666             "52862", "Coahuila",
667             "52997", "Yucatan",
668             "52615", "Baja\ California\ Sur",
669             "52422", "Michoacan",
670             "52243", "Puebla",
671             "52634", "Sonora",
672             "52454", "Michoacan",
673             "52595", "Estado\ de\ Mexico",
674             "52713", "Santiago\ Tianguistenco\,\ MEX",
675             "52437", "Jalisco\/Zacatecas",
676             "52846", "Veracruz",
677             "52772", "Actopan\,\ HGO",
678             "52279", "Veracruz",
679             "52756", "Chilapa\/Olinala\,\ GRO",
680             "52771", "Pachuca\/Real\ Del\ Monte\,\ HGO",
681             "52999", "Conkal\/Merida\,\ YUC",
682             "52686", "Baja\ California",
683             "52748", "Hidalgo",
684             "52492", "Zacatecas",
685             "52765", "Alamo\ Temapache\/Alazan\/Potrero\ Del\ Llano\,\ VER",
686             "52452", "Nuevo\ San\ Juan\ Parangaricutiro\/Uruapan\,\ MICH",
687             "52356", "Tanhuato\/Yurecuaro\,\ MICH",
688             "52632", "Imuris\/Magdalena\,\ SON",
689             "52451", "Michoacan",
690             "52476", "San\ Francisco\ Del\ Rincon\,\ GTO",
691             "52629", "Chihuahua",
692             "52631", "Nogales\,\ SON",
693             "52387", "Jalisco",
694             "52348", "Jalisco",
695             "52313", "Colima",
696             "52934", "Tabasco",
697             "52284", "Angel\ Rosario\ Cabada\/Lerdo\ de\ Tejada\,\ VER",
698             "52833", "Tampico\,\ TAMPS",
699             "52864", "Coahuila",
700             "52424", "Michoacan",
701             "52415", "San\ Miguel\ Allende\,\ GTO",
702             "52622", "Guaymas\/San\ Carlos\,\ SON",
703             "52459", "Michoacan",
704             "52639", "Chihuahua",
705             "52621", "Chihuahua",
706             "52296", "Veracruz",
707             "52924", "Veracruz",
708             "52784", "Veracruz",
709             "52463", "Jalpa\/Tabasco\,\ ZAC",
710             "52823", "Nuevo\ Leon",
711             "52434", "Michoacan",
712             "52384", "Tala\/Teuchitlan\,\ JAL",
713             "52272", "Maltrata\/Orizaba\,\ VER",
714             "52992", "Chiapas",
715             "52427", "Mexico\/Quintana\ Roo",
716             "52867", "Nuevo\ Laredo\/Tamaulipas",
717             "52271", "Veracruz",
718             "52779", "Tizayuca\,\ HGO",
719             "52991", "Yucatan",
720             "52645", "Cananea\,\ SON",
721             "52248", "Puebla",
722             "52499", "Jalisco\/Zacatecas",
723             "52287", "Oaxaca",
724             "52668", "Sinaloa",
725             "52937", "Cardenas\,\ TAB",
726             "52349", "Jalisco",
727             "52467", "Zacatecas",
728             "5295", "Oaxaca",
729             "52628", "Chihuahua",
730             "52735", "Cuautla\/Jonacatepec\,\ MOR",
731             "52225", "Tlapacoyan\,\ VER",
732             "52899", "Tamaulipas",
733             "52714", "Estado\ de\ Mexico",
734             "52283", "Veracruz",
735             "52314", "Manzanillo\/Pena\ Colorada\,\ COL",
736             "52933", "Tabasco",
737             "52834", "Ciudad\ Victoria\,\ TAMPS",
738             "52423", "Michoacan",
739             "52661", "Primo\ Tapia\/Rosarito\,\ BCN",
740             "52662", "Sonora",
741             "52241", "Tlaxcala",
742             "52749", "Calpulalpan\,\ TLAX",
743             "52998", "Quintana\ Roo",
744             "52675", "Durango",
745             "52278", "Veracruz",
746             "52783", "Tuxpan\,\ VER",
747             "52923", "Tabasco\/Veracruz",
748             "52824", "Sabinas\ Hidalgo\,\ NL",
749             "52464", "Salamanca\,\ GTO",
750             "52653", "Luis\ B\.\ Sanchez\/San\ Luis\ Rio\ Colorado\,\ SON",
751             "52433", "Zacatecas",
752             "52596", "Estado\ de\ Mexico",
753             "52669", "Sinaloa",
754             "52742", "Guerrero",
755             "52498", "Zacatecas",
756             "52249", "Puebla",
757             "52741", "Guerrero",
758             "52778", "Hidalgo",
759             "52717", "Estado\ de\ Mexico",
760             "52325", "Acaponeta\,\ NAY",
761             "52616", "Baja\ California",
762             "52341", "Ciudad\ Guzman\,\ JAL",
763             "52342", "Gomez\ Farias\/Sayula\,\ JAL",
764             "52985", "Yucatan",
765             "52638", "Puerto\ Penasco\,\ SON",
766             "52892", "Nuevo\ Leon",
767             "52967", "San\ Cristobal\ de\ las\ Casas\,\ CHIS",
768             "52725", "Almoloya\ de\ Juarez\/Santa\ Maria\ Del\ Monte\,\ MEX",
769             "52235", "Veracruz",
770             "52458", "Zacatecas",
771             "52317", "Autlan\/El\ Chante\,\ JAL",
772             "52891", "Tamaulipas",
773             "5237", "Jalisco",
774             "52383", "Michoacan",
775             "52744", "Acapulco\/Xaltianguis\,\ GRO",
776             "52623", "Sonora",
777             "52969", "Flamboyanes\/Yucalpeten\,\ YUC",
778             "52990", "Merida",
779             "52355", "Michoacan",
780             "52319", "Nayarit",
781             "52475", "Bajio\ de\ San\ Jose\/Encarnacion\ de\ Diaz\,\ JAL",
782             "52462", "Irapuato\,\ GTO",
783             "52821", "Hualahuises\/Linares\,\ NL",
784             "52461", "Guanajuato",
785             "52916", "Chiapas",
786             "52719", "San\ Francisco\ Xonacatlan\/Temoaya\,\ MEX",
787             "52845", "Ebano\/Ponciano\ Arriaga\,\ SLP",
788             "52428", "Ocampo\/San\ Felipe\,\ GTO",
789             "52868", "Tamaulipas",
790             "52755", "Ixtapa\/Zihuatanejo\,\ GRO",
791             "52667", "Sinaloa",
792             "52938", "Ciudad\ Del\ Carmen\,\ CAMP",
793             "52288", "Veracruz",
794             "52247", "Huamantla\/San\ Cosme\ Xalostoc\,\ TLAX",
795             "52395", "Jalisco",
796             "52766", "Gutierrez\ Zamora\/Tecolutla\,\ VER",
797             "52273", "Veracruz",
798             "52993", "Tabasco",
799             "52344", "Mexticacan\/Yahualica\,\ JAL",
800             "52894", "Santa\ Apolonia\/Valle\ Hermoso\,\ TAMPS",
801             "52711", "Mexico\/Michoacan",
802             "52438", "Michoacan",
803             "52712", "Estado\ de\ Mexico",
804             "52658", "Baja\ California",
805             "52646", "Baja\ California",
806             "52747", "Guerrero",
807             "52773", "Hidalgo",
808             "52493", "Fresnillo\,\ ZAC",
809             "52453", "Apatzingan\,\ MICH",
810             "52633", "Sonora",
811             "52244", "Puebla",
812             "526572", "Juarez\/Chihuahua",
813             "52312", "Colima\/Los\ Tepames\,\ COL",
814             "52897", "Tamaulipas",
815             "52311", "Nayarit",
816             "52832", "Tamaulipas",
817             "5269", "Sinaloa",
818             "52347", "Jalisco",
819             "52469", "Buenavista\ de\ Cortez\/Penjamo\,\ GTO",
820             "52831", "Ciudad\ Mante\/Los\ Aztecas\,\ TAMPS",
821             "52388", "Jalisco",
822             "52829", "Nuevo\ Leon",};
823              
824             sub new {
825 19     19 1 47 my $class = shift;
826 19         32 my $number = shift;
827 19         125 $number =~ s/(^\+52|\D)//g;
828 19         132 my $self = bless({ country_code => '52', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
829 19 100       94 return $self if ($self->is_valid());
830 1         3 $number =~ s/^(?:0(?:[12]|4[45])|1)//;
831 1         11 $self = bless({ country_code => '52', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
832 1 50       4 return $self->is_valid() ? $self : undef;
833             }
834             1;