File Coverage

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