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