File Coverage

blib/lib/Number/Phone/StubCountry/KZ.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::KZ;
20 4     4   2688 use base qw(Number::Phone::StubCountry);
  4         16  
  4         497  
21              
22 4     4   32 use strict;
  4         9  
  4         93  
23 4     4   23 use warnings;
  4         9  
  4         112  
24 4     4   23 use utf8;
  4         10  
  4         28  
25             our $VERSION = 1.20230614174403;
26              
27             my $formatters = [];
28              
29             my $validators = {
30             'fixed_line' => '
31             (?:
32             33622|
33             7(?:
34             1(?:
35             0(?:
36             [23]\\d|
37             4[0-3]|
38             59|
39             63
40             )|
41             1(?:
42             [23]\\d|
43             4[0-79]|
44             59
45             )|
46             2(?:
47             [23]\\d|
48             59
49             )|
50             3(?:
51             2\\d|
52             3[0-79]|
53             4[0-35-9]|
54             59
55             )|
56             4(?:
57             [24]\\d|
58             3[013-9]|
59             5[1-9]|
60             97
61             )|
62             5(?:
63             2\\d|
64             3[1-9]|
65             4[0-7]|
66             59
67             )|
68             6(?:
69             [2-4]\\d|
70             5[19]|
71             61
72             )|
73             72\\d|
74             8(?:
75             [27]\\d|
76             3[1-46-9]|
77             4[0-5]|
78             59
79             )
80             )|
81             2(?:
82             1(?:
83             [23]\\d|
84             4[46-9]|
85             5[3469]
86             )|
87             2(?:
88             2\\d|
89             3[0679]|
90             46|
91             5[12679]
92             )|
93             3(?:
94             [2-4]\\d|
95             5[139]
96             )|
97             4(?:
98             2\\d|
99             3[1-35-9]|
100             59
101             )|
102             5(?:
103             [23]\\d|
104             4[0-8]|
105             59|
106             61
107             )|
108             6(?:
109             2\\d|
110             3[1-9]|
111             4[0-4]|
112             59
113             )|
114             7(?:
115             [2379]\\d|
116             40|
117             5[279]
118             )|
119             8(?:
120             [23]\\d|
121             4[0-3]|
122             59
123             )|
124             9(?:
125             2\\d|
126             3[124578]|
127             59
128             )
129             )
130             )
131             )\\d{5}
132             ',
133             'geographic' => '
134             (?:
135             33622|
136             7(?:
137             1(?:
138             0(?:
139             [23]\\d|
140             4[0-3]|
141             59|
142             63
143             )|
144             1(?:
145             [23]\\d|
146             4[0-79]|
147             59
148             )|
149             2(?:
150             [23]\\d|
151             59
152             )|
153             3(?:
154             2\\d|
155             3[0-79]|
156             4[0-35-9]|
157             59
158             )|
159             4(?:
160             [24]\\d|
161             3[013-9]|
162             5[1-9]|
163             97
164             )|
165             5(?:
166             2\\d|
167             3[1-9]|
168             4[0-7]|
169             59
170             )|
171             6(?:
172             [2-4]\\d|
173             5[19]|
174             61
175             )|
176             72\\d|
177             8(?:
178             [27]\\d|
179             3[1-46-9]|
180             4[0-5]|
181             59
182             )
183             )|
184             2(?:
185             1(?:
186             [23]\\d|
187             4[46-9]|
188             5[3469]
189             )|
190             2(?:
191             2\\d|
192             3[0679]|
193             46|
194             5[12679]
195             )|
196             3(?:
197             [2-4]\\d|
198             5[139]
199             )|
200             4(?:
201             2\\d|
202             3[1-35-9]|
203             59
204             )|
205             5(?:
206             [23]\\d|
207             4[0-8]|
208             59|
209             61
210             )|
211             6(?:
212             2\\d|
213             3[1-9]|
214             4[0-4]|
215             59
216             )|
217             7(?:
218             [2379]\\d|
219             40|
220             5[279]
221             )|
222             8(?:
223             [23]\\d|
224             4[0-3]|
225             59
226             )|
227             9(?:
228             2\\d|
229             3[124578]|
230             59
231             )
232             )
233             )
234             )\\d{5}
235             ',
236             'mobile' => '
237             7(?:
238             0[0-25-8]|
239             47|
240             6[0-4]|
241             7[15-8]|
242             85
243             )\\d{7}
244             ',
245             'pager' => '',
246             'personal_number' => '808\\d{7}',
247             'specialrate' => '(809\\d{7})',
248             'toll_free' => '
249             8(?:
250             00|
251             108\\d{3}
252             )\\d{7}
253             ',
254             'voip' => '751\\d{7}'
255             };
256             my %areanames = ();
257             $areanames{en} = {"771034", "Zhezdy",
258             "772547", "Lenger",
259             "7485", "Yaroslavl",
260             "772843", "Lepsy",
261             "772771", "Kaskelen",
262             "772633", "Asa",
263             "7851", "Astrakhan",
264             "77273", "Almaty",
265             "772132", "Nurinsky\ District",
266             "771145", "Karatobe\ District",
267             "771131", "Darinskoye",
268             "7487", "Tula",
269             "771832", "Irtyshsk",
270             "771642", "Egendykol",
271             "772635", "Bauyrzhan\ Mamyshuly",
272             "7872", "Republic\ of\ Daghestan",
273             "772641", "Akkol",
274             "772831", "Zharkent",
275             "772334", "Tavricheskoye",
276             "7388", "Republic\ of\ Altai",
277             "771237", "Kulsary",
278             "772257", "Shulbinsk",
279             "7352", "Kurgan",
280             "771449", "Taranovskoye",
281             "7484", "Kaluga",
282             "772239", "Makanchi",
283             "771143", "Akzhaik",
284             "771348", "Shalkarsky\ District",
285             "772774", "Talgar",
286             "772938", "Fort\ Shevchenko",
287             "7869", "Sevastopol",
288             "77142", "Kostanai",
289             "7426", "Jewish\ Autonomous\ Region",
290             "772436", "Terenozek",
291             "771456", "Kachar",
292             "771031", "Aksu\-Ayuly",
293             "772343", "Terekty",
294             "772148", "Molodezhnoye",
295             "7491", "Ryazan",
296             "771134", "Zhympity",
297             "772154", "Botakara",
298             "7342", "Perm",
299             "771332", "Uil",
300             "772345", "Shar",
301             "7841", "Penza",
302             "772331", "Glubokoye",
303             "771043", "Zhairem",
304             "772834", "Ushtobe",
305             "772644", "Karatau",
306             "7383", "Novosibirsk",
307             "77152", "Petropavlovsk",
308             "772536", "Kentau",
309             "7811", "Pskov",
310             "771638", "Akkol",
311             "771430", "Arkalyk",
312             "771446", "Uzunkolsky\ District",
313             "771042", "Zharyk",
314             "771138", "Zhalpaktal",
315             "772236", "Beskaragai",
316             "772540", "Arys",
317             "7816", "Veliky\ Novgorod",
318             "772353", "Novaya\ Shulba",
319             "771333", "Kandyagash",
320             "77122", "Atyrau",
321             "733", "Baikonur",
322             "772144", "Kiyevka",
323             "7846", "Samara",
324             "772934", "Zhanaozen",
325             "772778", "Chundzha",
326             "771844", "Irtyshsky\ District",
327             "7345", "Tyumen",
328             "7496", "Moscow",
329             "771335", "Shalkar",
330             "772342", "Katon\-Karagai",
331             "771341", "Khobda",
332             "771230", "Atyrau\ Region",
333             "7421", "Khabarovsk\ Territory",
334             "771546", "Talshik",
335             "7347", "Republic\ of\ Bashkortostan",
336             "772838", "Balpyk\ bi",
337             "7413", "Magadan",
338             "772539", "Kazygurt",
339             "771643", "Atbasar",
340             "771833", "Terenkol",
341             "771537", "Timiryazevo",
342             "7877", "Republic\ of\ Adygeya",
343             "772931", "Shetpe",
344             "772757", "Akshi",
345             "771142", "Taipak",
346             "771038", "Shashubai",
347             "77125", "Atyrau\ Region",
348             "771645", "Stepnogorsk",
349             "7301", "Republic\ of\ Buryatia",
350             "772842", "Kogaly",
351             "772632", "Merke",
352             "771841", "Aktogai",
353             "771631", "Shortandy",
354             "77279", "Almaty",
355             "772439", "Aralsky\ District",
356             "771459", "Kostanai\ Region",
357             "7863", "Rostov",
358             "772338", "Bozanbai\/Molodezhnyi",
359             "7482", "Tver",
360             "771437", "Kamysty",
361             "771534", "Sergeyevka",
362             "7346", "Surgut",
363             "7844", "Volgograd",
364             "7495", "Moscow",
365             "772770", "Uzynagash",
366             "771836", "Sharbakty",
367             "771646", "Makinsk",
368             "771130", "Peremetnoye",
369             "7814", "Republic\ of\ Karelia",
370             "772548", "Shayan",
371             "77282", "Taldykorgan",
372             "771238", "Miyaly",
373             "7815", "Murmansk",
374             "772640", "Moiynkumsky\ District",
375             "772830", "Alakolsky\ District",
376             "7847", "Republic\ of\ Kalmykia",
377             "771347", "Aitekebisky\ District",
378             "77112", "Uralsk",
379             "771434", "Denisovka",
380             "7817", "Vologda",
381             "7494", "Kostroma",
382             "740", "Kaliningrad",
383             "7845", "Saratov",
384             "7473", "Voronezh",
385             "77213", "Aktau\/Temirtau",
386             "772532", "Abai",
387             "771545", "Zhambylsky\ District",
388             "771030", "Atasu",
389             "771531", "Bulayevo",
390             "7302", "Chita",
391             "7481", "Smolensk",
392             "771336", "Khromtau",
393             "771149", "Zelenovsky\ District",
394             "7855", "Naberezhnye\ Chelny",
395             "772937", "Kuryk",
396             "771443", "Borovskoi",
397             "772147", "Egindybulak",
398             "77232", "Ust\-Kamenogorsk",
399             "772639", "Saudakent",
400             "772330", "Zyryanovsky\ District",
401             "771543", "Yavlenka",
402             "771637", "Korgalzhyn",
403             "77102", "Zhezkazgan",
404             "771445", "Ubaganskoye",
405             "772432", "Shiyeli",
406             "771452", "Karasu",
407             "771431", "Rudny",
408             "7871", "Chechen\ Republic",
409             "772535", "Shardara",
410             "771542", "Kishkenekol",
411             "772541", "Myrzakent",
412             "772777", "Kegen",
413             "7351", "Chelyabinsk",
414             "771137", "Chingirlau",
415             "736", "Simferopol",
416             "772346", "Aksuat",
417             "771453", "Auliekol",
418             "772433", "Aralsk",
419             "772837", "Kabanbai",
420             "771839", "Akku",
421             "771649", "Zhaksynsky\ District",
422             "7486", "Orel",
423             "772533", "Turkestan",
424             "771340", "Khobdinsky\ District",
425             "771442", "Fyodorovka",
426             "771231", "Akkystau",
427             "772251", "Kurchatov",
428             "772435", "Zhanakorgan",
429             "771455", "Zatobolsk",
430             "77145834", "Krasnogorsk",
431             "7842", "Ulyanovsk",
432             "772544", "Shaulder",
433             "771037", "Aktogai",
434             "77162", "Kokshetau\/Krasni\ Yar",
435             "7812", "St\ Petersburg",
436             "7424", "Sakhalin\ Region",
437             "772636", "Kordai",
438             "771538", "Beskol",
439             "772337", "Serebryansk",
440             "7833", "Kirov",
441             "771339", "Komsomolskoye",
442             "77292", "Aktau",
443             "771146", "Akzhaiksky\ District",
444             "771438", "Amangeldy",
445             "771630", "Burabay",
446             "771840", "Bayanaul",
447             "7492", "Vladimir",
448             "7427", "Chukotka\ Autonomous\ District",
449             "771234", "Indernborski",
450             "7341", "Udmurtian\ Republic",
451             "771547", "Zhambylsky\ District",
452             "7381", "Omsk",
453             "772772", "Kapchagai",
454             "7813", "Leningrad\ region",
455             "771843", "Maisky\ District",
456             "771633", "Ereimentau",
457             "7843", "Republic\ of\ Tatarstan",
458             "771132", "Fyodorovka",
459             "772131", "Abai",
460             "7475", "Tambov",
461             "772935", "Zhetybai",
462             "771635", "Zhaksy",
463             "771845", "Pavlodar\ Area",
464             "772832", "Zhansugurov",
465             "772642", "Moiynkum",
466             "7474", "Lipetsk",
467             "7820", "Cherepovets",
468             "771641", "Astrakhanka",
469             "771831", "Zhelezinka",
470             "77187", "Ekibastuz",
471             "77224", "Barshatas",
472             "771334", "Emba",
473             "77245", "Kyzylorda\ Region",
474             "7712303", "Tengizs",
475             "771447", "Karabalyksky\ District",
476             "772237", "Ayagoz",
477             "772348", "Kokpekty",
478             "771239", "Makat",
479             "77242", "Kyzylorda",
480             "7416", "Amur\ Region",
481             "771436", "Taranovskoye",
482             "771032", "Karazhal",
483             "772530", "Temirlanovka",
484             "7818", "Arkhangelsk",
485             "771343", "Irgiz",
486             "7848", "Tolyatti",
487             "7395", "Irkutsk",
488             "771345", "Karauylkeldy",
489             "7498", "Moscow",
490             "772332", "Shemonaikha",
491             "772351", "Borodulikha",
492             "771331", "Martuk",
493             "77272", "Almaty",
494             "771644", "Arshaly",
495             "771834", "Uspenka",
496             "7394", "Republic\ of\ Tuva",
497             "77252", "Shymkent",
498             "771536", "Taiynsha",
499             "7866", "Kabardino\-Balkarian\ Republic",
500             "772638", "Tole\ bi",
501             "7821", "Komi\ Republic",
502             "771035", "Ulytau",
503             "772333", "Samarskoye",
504             "771041", "Aktau\,\ Zhezkazgan",
505             "771540", "Kishkenekol",
506             "7861", "Krasnodar\ Territory",
507             "772256", "Kainar",
508             "771236", "Makhambet",
509             "772138", "Gabidena\ Mustafina",
510             "77222", "Semey",
511             "771144", "Kaztalovka",
512             "7499", "Moscow",
513             "772634", "Zhanatas",
514             "771342", "Badamsha",
515             "77272983", "Kaskelen",
516             "772335", "Zyryanovsk",
517             "772341", "Ulken\ Naryn",
518             "771033", "Agadyr",
519             "772546", "Sholakkorgan",
520             "7411", "Republic\ of\ Sakha",
521             "772230", "Urdzhar",
522             "771648", "Derzhavinsk",
523             "771838", "Koktobe",
524             "771440", "Amangeldy",
525             "772775", "Esik",
526             "771539", "Beskol",
527             "7423", "Primorie\ territory",
528             "772643", "Shu",
529             "772833", "Usharal",
530             "77274", "Karassaisky\ District",
531             "772537", "Saryagash",
532             "7835", "Chuvashi\ Republic",
533             "772759", "Almaty\ Region",
534             "77149", "Kostanai",
535             "772932", "Beineu",
536             "771135", "Zhanibek",
537             "77272956", "Talgar",
538             "771141", "Zhangala",
539             "772344", "Akzhar",
540             "771632", "Zerenda",
541             "771842", "Koktobe",
542             "7472", "Belgorod",
543             "772835", "Tekeli",
544             "772631", "Kulan",
545             "771651", "Kabanbai\ Batyr",
546             "772773", "Bakanas",
547             "772841", "Kapal",
548             "771439", "Torgai",
549             "772153", "Topar",
550             "771133", "Aksai",
551             "771457", "Dzhangildinsky\ District",
552             "772437", "Zhosaly",
553             "7834", "Republic\ of\ Mordovia",
554             "772534", "Zhetysai",
555             "7391", "Krasnoyarsk\ Territory",
556             "772836", "Karabulak",
557             "77182", "Pavlodar",
558             "7712302", "Tengizshevroil",
559             "771349", "Shalkarsky\ District",
560             "772156", "Shakhtinsk",
561             "7483", "Bryansk",
562             "771136", "Chapayev",
563             "7862", "Sochi",
564             "771448", "Oktyabrskoye",
565             "771640", "Balkashino",
566             "772347", "Kalbatau",
567             "77212", "Karaganda",
568             "771454", "Karamendy",
569             "77135", "Aktobe\ Region",
570             "772776", "Shelek",
571             "7349", "Yamalo\-Nenets\ Autonomous\ District",
572             "7879", "Mineranye\ Vody",
573             "772545", "Ikan",
574             "771532", "Smirnovo",
575             "772531", "Aksukent",
576             "7471", "Kursk",
577             "771233", "Ganyushkino",
578             "772149", "Osakarovka",
579             "772336", "Ridder",
580             "7717", "Astana",
581             "772752", "Otegen\ Batyra",
582             "771147", "Akzhaiksky\ District",
583             "7390", "Republic\ of\ Khakassia",
584             "7385", "Altai\ Territory",
585             "77132", "Aktobe\/Kargalinskoye",
586             "771639", "Stepnyak",
587             "772543", "Aqsumbe",
588             "771330", "Khromtau\ District",
589             "772637", "Sarykemer",
590             "7384", "Kemerovo",
591             "7836", "Republic\ of\ Marij\ El",
592             "77185", "Shaldai",
593             "771036", "Balkhash",
594             "771451", "Sarykol",
595             "772431", "Zhalagash",
596             "771235", "Dossor",
597             "772542", "Asykata",
598             "772779", "Narynkol",
599             "771535", "Novoishimski",
600             "771040", "Zhairem\ \(GOK\)",
601             "771541", "Mamlutka",
602             "7343", "Ekaterinburg",
603             "772137", "Saran",
604             "7831", "Nizhni\ Novgorod",
605             "771346", "Shubarkuduk",
606             "771139", "Taskala",
607             "77106", "Satpaev",
608             "772159", "Karaganda\ Region",
609             "771433", "Lisakovsk",
610             "771647", "Esil",
611             "771837", "Aksu",
612             "7382", "Tomsk",
613             "772839", "Sarkand",
614             "772340", "Zaisan",
615             "771533", "Saumalkol",
616             "771435", "Zhitikara",
617             "7878", "Karachayevo\-Cherkessian\ Republic",
618             "771441", "Karabalyk",
619             "771232", "Atyrau\ Region",
620             "772252", "Karaul",
621             "771039", "Priozersk",
622             "771544", "Presnovka",
623             "7867", "Republic\ of\ North\ Ossetia",
624             "77262", "Taraz",
625             "771636", "Shuchinsk",
626             "771140", "Saikhin",
627             "7865", "Stavropol\ territory",
628             "772538", "Turara\ Ryskulova",
629             "7353", "Orenburg",
630             "771337", "Alga",
631             "772146", "Karkaralinsk",
632             "7415", "Kamchatka\ Region",
633             "772339", "Kurchum",
634             "772840", "Saryozek",
635             "771458", "Kostanai\ Region",
636             "772438", "Aiteke\ bi",
637             "7873", "Ingushi\ Republic",
638             "771444", "Uzunkol",
639             "772725", "Otegen\ Batyra",};
640             $areanames{ru} = {"772635", "Жуалынский\ р\-н",
641             "771832", "Иртышский\ р\-н",
642             "771642", "Егиндыкольский\ р\-н",
643             "772831", "Панфиловский\ р\-н",
644             "772641", "Таласский\ р\-н",
645             "7872", "Республика\ Дагестан",
646             "772334", "Уланский\ р\-н",
647             "7388", "Республика\ Алтай",
648             "7352", "Курганская\ обл\.",
649             "771237", "Жылыойский\ р\-н",
650             "772257", "Шульбинск",
651             "7484", "Калужская\ обл\.",
652             "771449", "Тарановский\ р\-н",
653             "771348", "Шалкарский\ р\-н",
654             "771143", "Теректинский\ р\-н",
655             "772239", "Урджарский\ р\-н",
656             "772547", "Ленгер",
657             "771034", "Улытауский\ р\-н",
658             "7485", "Ярославская\ обл\.",
659             "77273", "Алма\-Ата",
660             "7851", "Астраханская\ обл\.",
661             "772843", "Лепсы",
662             "772771", "Карасайский\ р\-н",
663             "772633", "Жамбылский\ р\-н",
664             "771145", "Каратобинский\ р\-н",
665             "772132", "Нуринский\ р\-н",
666             "771131", "Зеленовский\ р\-н",
667             "7487", "Тульская\ обл\.",
668             "772345", "Жарминский\ р\-н",
669             "7841", "Пензенская\ обл\.",
670             "771332", "Уилский\ р\-н",
671             "772331", "Глубоковский\ р\-н",
672             "771043", "Жайрем\ \(поселок\)",
673             "772644", "Таласский\ р\-н",
674             "772834", "Каратальский\ р\-н",
675             "7383", "Новосибирская\ обл\.",
676             "77152", "Петропавловск",
677             "772536", "Кентау",
678             "771430", "Аркалык",
679             "771638", "Аккольский\ р\-н",
680             "7811", "Псковская\ обл\.",
681             "7869", "г\.\ Севастополь",
682             "772938", "Тупкараганский\ р\-н",
683             "772774", "Талгарский\ р\-н",
684             "77142", "Костанай",
685             "772436", "Сырдарьинский\ р\-н",
686             "7426", "Еврейская\ автономная\ обл\.",
687             "771456", "Качар",
688             "772148", "Осакаровский\ р\-н",
689             "772343", "Курчумский\ р\-н",
690             "771031", "Шетский\ р\-н",
691             "7491", "Рязанская\ обл\.",
692             "7342", "Пермский\ край",
693             "772154", "Бухар\-Жырауский\ р\-н",
694             "771134", "Сырымский\ р\-н",
695             "771844", "Иртышский\ р\-н",
696             "7345", "Тюменская\ обл\.",
697             "772342", "Катон\-Карагайский\ р\-н",
698             "771335", "Шалкарский\ р\-н",
699             "7496", "г\.\ Москва",
700             "771341", "Хобдинский\ р\-н",
701             "771546", "Акжарский\ р\-н",
702             "7421", "Хабаровский\ край",
703             "771230", "Атырауская\ область",
704             "7347", "Республика\ Башкортостан",
705             "772838", "Коксуский\ р\-н",
706             "771042", "Акой",
707             "771446", "Узункольский\ р\-н",
708             "772353", "Бородулихинский\ р\-н",
709             "771333", "Мугалжарский\ р\-н",
710             "772540", "Арыс",
711             "7816", "Новгородская\ обл\.",
712             "772236", "Бескарагайский\ р\-н",
713             "771138", "Казталовский\ р\-н",
714             "77122", "Атырау",
715             "733", "Байконыр",
716             "772144", "Нуринский\ р\-н",
717             "7846", "Самарская\ обл\.",
718             "772778", "Уйгурский\ р\-н",
719             "772934", "Жанаозен",
720             "77125", "Атырауская\ область",
721             "772632", "Меркенский\ р\-н",
722             "772842", "Кербулакский\ р\-н",
723             "7301", "Республика\ Бурятия",
724             "771645", "Степногорск",
725             "771631", "Шортандинский\ р\-н",
726             "771841", "Актогайский\ р\-н",
727             "772439", "Аральский\ р\-н",
728             "771459", "Костанайская\ область",
729             "77279", "Алматы",
730             "772338", "Уланский\ р\-н",
731             "7482", "Тверская\ обл\.",
732             "7863", "Ростовская\ обл\.",
733             "771437", "Камыстинский\ р\-н",
734             "772539", "Казыгурт",
735             "7413", "Магаданская\ обл\.",
736             "771643", "Атбасарский\ р\-н",
737             "771833", "Качирский\ р\-н",
738             "7877", "Республика\ Адыгея",
739             "771537", "Тимирязевский\ р\-н",
740             "772931", "Мангистауский\ р\-н",
741             "771142", "Акжаикский\ р\-н",
742             "772757", "Акший",
743             "771038", "Сыры\-Шаган",
744             "771238", "Кзылкогинский\ р\-н",
745             "7815", "Мурманская\ обл\.",
746             "772640", "Мойынкумский\ р\-н",
747             "772830", "Алакольский\ р\-н",
748             "771347", "Айтекебийский\ р\-н",
749             "7847", "Республика\ Калмыкия",
750             "77112", "Уральск",
751             "771434", "Денисовский\ р\-н",
752             "7817", "Вологодская\ обл\.",
753             "7845", "Саратовская\ обл\.",
754             "740", "Калининградская\ обл\.",
755             "7494", "Костромская\ обл\.",
756             "7473", "Воронежская\ обл\.",
757             "771534", "Шал\ Акына\ р\-н",
758             "7346", "Ханты\ \-\ Мансийский\ \-\ Югра\ АО",
759             "7495", "Московская\ обл\.",
760             "7844", "Волгоградская\ обл\.",
761             "772770", "Жамбылский\ р\-н",
762             "771646", "Буландинский\ р\-н",
763             "771836", "Щербактинский\ р\-н",
764             "772548", "Шаян",
765             "7814", "Республика\ Карелия",
766             "771130", "Зеленовский\ р\-н",
767             "77282", "Талдыкорган",
768             "772639", "Сарысуский\ р\-н",
769             "771543", "Есильский\ р\-н",
770             "772330", "Зыряновский\ р\-н",
771             "771637", "Коргалжынский\ р\-н",
772             "77102", "Жезказган",
773             "771452", "Карасуский\ р\-н",
774             "772432", "Шиелийский\ р\-н",
775             "771445", "Алтынсаринский\ р\-н",
776             "771431", "Рудный",
777             "77213", "Темиртау",
778             "771545", "Жамбылский\ р\-н",
779             "772532", "Абая",
780             "771531", "Магжана\ Жумабаева\ р\-н",
781             "7302", "Забайкальский\ край",
782             "771030", "Жана\-Аркинский\ р\-н",
783             "771149", "Акжаикский\ р\-н",
784             "7481", "Смоленская\ обл\.",
785             "771336", "Хромтауский\ р\-н",
786             "772937", "Каракиянский\ р\-н",
787             "771443", "Мендыкаринский\ р\-н",
788             "7855", "Республика\ Татарстан",
789             "772147", "Каркаралинский\ р\-н",
790             "77232", "Усть\-Каменогорск",
791             "772837", "Алакольский\ р\-н",
792             "7486", "Орловская\ обл\.",
793             "771839", "Лебяжинский\ р\-н",
794             "771649", "Жаксынский\ р\-н",
795             "771340", "Хобдинский\ р\-н",
796             "772533", "Туркестан",
797             "771455", "Костанайский\ р\-н",
798             "772435", "Жанакорганский\ р\-н",
799             "772251", "Курчатов",
800             "771231", "Исатайский\ р\-н",
801             "771442", "Федоровский\ р\-н",
802             "77145834", "Красногорск",
803             "771542", "Уалихановский\ р\-н",
804             "772535", "Шардара",
805             "7871", "Республика\ Чеченская",
806             "772541", "Мырзакент",
807             "772777", "Райымбекский\ р\-н",
808             "771137", "Чингирлауский\ р\-н",
809             "7351", "Челябинская\ обл\.",
810             "772346", "Тарбагатайский\ р\-н",
811             "736", "Республика\ Крым",
812             "771453", "Аулиекольский\ р\-н",
813             "772433", "Аральский\ р\-н",
814             "7833", "Кировская\ обл\.",
815             "772337", "Серебрянск",
816             "771146", "Акжаикский\ р\-н",
817             "77292", "Актау",
818             "771339", "Айтекебийский\ р\-н",
819             "771840", "Баянаульский\ р\-н",
820             "771630", "Боровое",
821             "771438", "Амангельдинский\ р\-н",
822             "7492", "Владимирская\ обл\.",
823             "7427", "Чукотский\ АО",
824             "771234", "Индерский\ р\-н",
825             "7341", "Республика\ Удмуртская",
826             "7842", "Ульяновская\ обл\.",
827             "771037", "Актогайский\ р\-н",
828             "772544", "Шаульдер",
829             "77162", "Кокшетау",
830             "772636", "Кордай",
831             "7424", "Сахалинская\ обл\.",
832             "7812", "г\.\ Санкт\-Петербург",
833             "771538", "Кызылжарский\ р\-н",
834             "772832", "Аксуский\ р\-н",
835             "772642", "Мойынкумский\ р\-н",
836             "771635", "Жаксынский\ р\-н",
837             "7493", "Ивановская\ обл\.",
838             "771845", "Павлодар",
839             "77187", "Экибастуз",
840             "771831", "Железинский\ р\-н",
841             "771641", "Астраханский\ р\-н",
842             "7820", "Вологодская\ обл\.",
843             "7474", "Липецкая\ обл\.",
844             "771334", "Мугалжарский\ р\-н",
845             "77224", "Эмельтау",
846             "77245", "Кызылординская\ область",
847             "771447", "Карабалыкский\ р\-н",
848             "7712303", "Тензиз",
849             "772237", "Аязог",
850             "771239", "Макатский\ р\-н",
851             "772348", "Кокпектинский\ р\-н",
852             "7381", "Омская\ обл\.",
853             "771547", "Жамбылский\ р\-н",
854             "772772", "Капчагай",
855             "771633", "Ерейментауский\ р\-н",
856             "771843", "Майский\ р\-н",
857             "7813", "Ленинградская\ обл\.",
858             "771132", "Теректинский\ р\-н",
859             "7843", "Республика\ Татарстан",
860             "7475", "Тамбовская\ обл\.",
861             "772131", "Абайский\ р\-н",
862             "772935", "Каракиянский\ р\-н",
863             "772332", "Шемонаихинский\ р\-н",
864             "7498", "Московская\ обл\.",
865             "771345", "Байганинский\ р\-н",
866             "77272", "Алма\-Ата",
867             "771331", "Мартукский\ р\-н",
868             "772351", "Бородулихинский\ р\-н",
869             "7394", "Республика\ Тыва",
870             "771644", "Аршалынский\ р\-н",
871             "771834", "Успенский\ р\-н",
872             "77252", "Шымкент",
873             "771536", "Тайыншинский\ р\-н",
874             "7821", "Республика\ Коми",
875             "772638", "Шуский\ р\-н",
876             "7866", "Республика\ Кабардино\-Балкарская",
877             "77242", "Кызылорда",
878             "771032", "Каражал",
879             "771436", "Тарановский\ р\-н",
880             "7416", "Амурская\ обл\.",
881             "771343", "Иргизский\ р\-н",
882             "7818", "Архангельская\ обл\.",
883             "772530", "Темирлановка",
884             "7848", "Самарская\ обл\.",
885             "7395", "Иркутская\ обл\.",
886             "772634", "Жанатас",
887             "772335", "Зыряновск",
888             "77272983", "Каскелен",
889             "771342", "Каргалинский\ р\-н",
890             "772341", "Катон\-Карагайский\ р\-н",
891             "771033", "Шетский\ р\-н",
892             "772230", "Урджарский\ р\-н",
893             "7411", "Республика\ Саха\ \/Якутия\/",
894             "772546", "Шолаккорган",
895             "771440", "Амангельдинский\ р\-н",
896             "771838", "Майский\ р\-он",
897             "771648", "Жаркаинский\ р\-н",
898             "771035", "Улытауский\ р\-н",
899             "772138", "Бухар\-Жырауский\ р\-н",
900             "771236", "Махамбетский\ р\-н",
901             "772256", "Алгабас",
902             "7861", "Краснодарский\ край",
903             "771540", "Уалихановский\ р\-н",
904             "772333", "Кокпектинский\ р\-н",
905             "771041", "Актау\,\ Жезказган",
906             "77222", "Семипалатинск",
907             "771144", "Казталовский\ р\-н",
908             "7499", "г\.\ Москва",
909             "772344", "Тарбагатайский\ р\-н",
910             "7472", "Белгородская\ обл\.",
911             "772835", "Текели",
912             "771632", "Зерендинский\ р\-н",
913             "771842", "Майский\ р\-он",
914             "772631", "Турара\ Рыскулова\ р\-н",
915             "772773", "Балхашский\ р\-н",
916             "771651", "Целиноградский\ р\-н",
917             "772841", "Аксуский\ р\-н",
918             "771439", "Джангильдинский\ р\-н",
919             "771133", "Бурлинский\ р\-н",
920             "772153", "Абайский\ р\-н",
921             "7834", "Республика\ Мордовия",
922             "772437", "Кармакшинский\ р\-н",
923             "771457", "Джангильдинский\ р\-н",
924             "7423", "Приморский\ край",
925             "771539", "Кызылжарский\ р\-н",
926             "772775", "Енбекшиказахский\ р\-н",
927             "77274", "Карасайский\ р\-н",
928             "772833", "Алакольский\ р\-н",
929             "772643", "Шуский\ р\-н",
930             "7835", "Чувашская\ Республика\ \-\ Чувашия",
931             "772537", "Сарыагаш",
932             "77149", "Костанай",
933             "772759", "Алматинская\ область",
934             "772932", "Бейнеуский\ р\-н",
935             "771135", "Жанибекский\ р\-н",
936             "771141", "Жангалинский\ р\-н",
937             "77272956", "Талгар",
938             "7862", "Краснодарский\ край",
939             "772156", "Шахтинск",
940             "771136", "Акжаикский\ р\-н",
941             "7483", "Брянская\ обл\.",
942             "771349", "Шалкарский\ р\-н",
943             "771640", "Сандыктауский\ р\-н",
944             "771448", "Карасуский\ р\-н",
945             "772347", "Жарминский\ р\-н",
946             "77212", "Караганда",
947             "771454", "Наурзумский\ р\-н",
948             "77135", "Актюбинская\ область",
949             "7349", "Ямало\-Ненецкий\ АО",
950             "772776", "Енбекшиказахский\ р\-н",
951             "7391", "Красноярский\ край",
952             "772534", "Жетысай",
953             "772836", "Ескельдинский\ р\-н",
954             "77182", "Павлодар",
955             "7712302", "Тенгизшевройл",
956             "771639", "Енбекшилдерский\ р\-н",
957             "771330", "Хромтауский\ р\-н",
958             "772543", "Аксумбе",
959             "7836", "Республика\ Марий\ Эл",
960             "7384", "Кемеровская\ обл\.",
961             "772637", "Байзакский\ р\-н",
962             "77185", "Шалдай",
963             "771036", "Балхаш",
964             "771235", "Макатский\ р\-н",
965             "772431", "Жалагашский\ р\-н",
966             "771451", "Сарыкольский\ р\-н",
967             "7879", "Ставропольский\ край",
968             "771532", "Аккайынский\ р\-н",
969             "772545", "Икан",
970             "7471", "Курская\ обл\.",
971             "772531", "Аксукент",
972             "772336", "Риддер",
973             "772149", "Осакаровский\ р\-н",
974             "771233", "Курмангазинский\ р\-н",
975             "7717", "Астана",
976             "7385", "Алтайский\ край",
977             "7390", "Республика\ Хакасия",
978             "771147", "Акжаикский\ р\-н",
979             "772752", "Илийский\ р\-н",
980             "77132", "Актобе\/Актюбинск",
981             "771837", "Аксуский\ р\-н",
982             "771647", "Есильский\ р\-н",
983             "7382", "Томская\ обл\.",
984             "772839", "Саркандский\ р\-н",
985             "771533", "Айыртауский\ р\-н",
986             "772340", "Зайсанский\ р\-н",
987             "7878", "Республика\ Карачаево\-Черкесская",
988             "771435", "Житикаринский\ р\-н",
989             "772252", "Абайский\ р\-н",
990             "771232", "Атырауская\ область",
991             "771441", "Карабалыкский\ р\-н",
992             "771535", "Габита\ Мусрепова\ р\-н",
993             "772779", "Райымбекский\ р\-н",
994             "772542", "Асыката",
995             "771541", "Мамлютский\ р\-н",
996             "771040", "Жайрем\ \(ГОК\)",
997             "7343", "Свердловская\ обл",
998             "7831", "Нижегородская\ обл\.",
999             "772137", "Сарань",
1000             "77106", "Сатпаев",
1001             "771139", "Таскалинский\ р\-н",
1002             "772159", "Карагандинская\ область",
1003             "771346", "Темирский\ р\-н",
1004             "771433", "Лисаковск",
1005             "771337", "Алгинский\ р\-н",
1006             "7353", "Оренбургская\ обл\.",
1007             "772339", "Курчумский\ р\-н",
1008             "7415", "Камчатский\ край",
1009             "772146", "Каркаралинск",
1010             "771458", "Костанайская\ область",
1011             "772438", "Казалинский\ р\-н",
1012             "772840", "Кербулакский\ р\-н",
1013             "7873", "Республика\ Ингушетия",
1014             "772725", "Отеген\-Батыр",
1015             "771444", "Узункольский\ р\-н",
1016             "771039", "Приозерск",
1017             "771544", "Жамбылский\ р\-н",
1018             "7867", "Республика\ Северная\ Осетия\ \-\ Алания",
1019             "77262", "Тараз",
1020             "771636", "Щучинский\ р\-н",
1021             "772538", "имени\ Турара\ Рыскулова",
1022             "7865", "Ставропольский\ край",
1023             "771140", "Бокейординский\ р\-н",};
1024              
1025             sub new {
1026 20     20 1 107 my $class = shift;
1027 20         36 my $number = shift;
1028 20         145 $number =~ s/(^\+7|\D)//g;
1029 20         125 my $self = bless({ country_code => '7', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1030 20 100       123 return $self if ($self->is_valid());
1031 4         13 $number =~ s/^(?:8)//;
1032 4         56 $self = bless({ country_code => '7', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1033 4 50       16 return $self->is_valid() ? $self : undef;
1034             }
1035             1;