File Coverage

blib/lib/Number/Phone/StubCountry/PK.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::PK;
20 2     2   1194 use base qw(Number::Phone::StubCountry);
  2         9  
  2         222  
21              
22 2     2   14 use strict;
  2         7  
  2         44  
23 2     2   15 use warnings;
  2         5  
  2         52  
24 2     2   21 use utf8;
  2         9  
  2         13  
25             our $VERSION = 1.20230307181422;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2 $3',
30             'leading_digits' => '[89]0',
31             'national_rule' => '0$1',
32             'pattern' => '(\\d{3})(\\d{3})(\\d{2,7})'
33             },
34             {
35             'format' => '$1 $2',
36             'leading_digits' => '1',
37             'pattern' => '(\\d{4})(\\d{5})'
38             },
39             {
40             'format' => '$1 $2',
41             'leading_digits' => '
42             9(?:
43             2[3-8]|
44             98
45             )|
46             (?:
47             2(?:
48             3[2358]|
49             4[2-4]|
50             9[2-8]
51             )|
52             45[3479]|
53             54[2-467]|
54             60[468]|
55             72[236]|
56             8(?:
57             2[2-689]|
58             3[23578]|
59             4[3478]|
60             5[2356]
61             )|
62             9(?:
63             22|
64             3[27-9]|
65             4[2-6]|
66             6[3569]|
67             9[25-7]
68             )
69             )[2-9]
70             ',
71             'national_rule' => '(0$1)',
72             'pattern' => '(\\d{3})(\\d{6,7})'
73             },
74             {
75             'format' => '$1 $2',
76             'leading_digits' => '
77             (?:
78             2[125]|
79             4[0-246-9]|
80             5[1-35-7]|
81             6[1-8]|
82             7[14]|
83             8[16]|
84             91
85             )[2-9]
86             ',
87             'national_rule' => '(0$1)',
88             'pattern' => '(\\d{2})(\\d{7,8})'
89             },
90             {
91             'format' => '$1 $2',
92             'leading_digits' => '58',
93             'national_rule' => '(0$1)',
94             'pattern' => '(\\d{5})(\\d{5})'
95             },
96             {
97             'format' => '$1 $2',
98             'leading_digits' => '3',
99             'national_rule' => '0$1',
100             'pattern' => '(\\d{3})(\\d{7})'
101             },
102             {
103             'format' => '$1 $2 $3 $4',
104             'leading_digits' => '
105             2[125]|
106             4[0-246-9]|
107             5[1-35-7]|
108             6[1-8]|
109             7[14]|
110             8[16]|
111             91
112             ',
113             'national_rule' => '(0$1)',
114             'pattern' => '(\\d{2})(\\d{3})(\\d{3})(\\d{3})'
115             },
116             {
117             'format' => '$1 $2 $3 $4',
118             'leading_digits' => '[24-9]',
119             'national_rule' => '(0$1)',
120             'pattern' => '(\\d{3})(\\d{3})(\\d{3})(\\d{3})'
121             }
122             ];
123              
124             my $validators = {
125             'fixed_line' => '
126             (?:
127             (?:
128             21|
129             42
130             )[2-9]|
131             58[126]
132             )\\d{7}|
133             (?:
134             2[25]|
135             4[0146-9]|
136             5[1-35-7]|
137             6[1-8]|
138             7[14]|
139             8[16]|
140             91
141             )[2-9]\\d{6,7}|
142             (?:
143             2(?:
144             3[2358]|
145             4[2-4]|
146             9[2-8]
147             )|
148             45[3479]|
149             54[2-467]|
150             60[468]|
151             72[236]|
152             8(?:
153             2[2-689]|
154             3[23578]|
155             4[3478]|
156             5[2356]
157             )|
158             9(?:
159             2[2-8]|
160             3[27-9]|
161             4[2-6]|
162             6[3569]|
163             9[25-8]
164             )
165             )[2-9]\\d{5,6}
166             ',
167             'geographic' => '
168             (?:
169             (?:
170             21|
171             42
172             )[2-9]|
173             58[126]
174             )\\d{7}|
175             (?:
176             2[25]|
177             4[0146-9]|
178             5[1-35-7]|
179             6[1-8]|
180             7[14]|
181             8[16]|
182             91
183             )[2-9]\\d{6,7}|
184             (?:
185             2(?:
186             3[2358]|
187             4[2-4]|
188             9[2-8]
189             )|
190             45[3479]|
191             54[2-467]|
192             60[468]|
193             72[236]|
194             8(?:
195             2[2-689]|
196             3[23578]|
197             4[3478]|
198             5[2356]
199             )|
200             9(?:
201             2[2-8]|
202             3[27-9]|
203             4[2-6]|
204             6[3569]|
205             9[25-8]
206             )
207             )[2-9]\\d{5,6}
208             ',
209             'mobile' => '
210             3(?:
211             [0-24]\\d|
212             3[0-7]|
213             55|
214             64
215             )\\d{7}
216             ',
217             'pager' => '',
218             'personal_number' => '122\\d{6}',
219             'specialrate' => '(900\\d{5})|(
220             (?:
221             2(?:
222             [125]|
223             3[2358]|
224             4[2-4]|
225             9[2-8]
226             )|
227             4(?:
228             [0-246-9]|
229             5[3479]
230             )|
231             5(?:
232             [1-35-7]|
233             4[2-467]
234             )|
235             6(?:
236             0[468]|
237             [1-8]
238             )|
239             7(?:
240             [14]|
241             2[236]
242             )|
243             8(?:
244             [16]|
245             2[2-689]|
246             3[23578]|
247             4[3478]|
248             5[2356]
249             )|
250             9(?:
251             1|
252             22|
253             3[27-9]|
254             4[2-6]|
255             6[3569]|
256             9[2-7]
257             )
258             )111\\d{6}
259             )',
260             'toll_free' => '
261             800\\d{5}(?:
262             \\d{3}
263             )?
264             ',
265             'voip' => ''
266             };
267             my %areanames = ();
268             $areanames{en} = {"922336", "Mirpur\ Khas",
269             "928329", "Bolan",
270             "924593", "Mianwali",
271             "92417", "Faisalabad",
272             "92218", "Karachi",
273             "922984", "Thatta",
274             "929392", "Buner",
275             "92215", "Karachi",
276             "925448", "Jhelum",
277             "929957", "Haripur",
278             "92627", "Bahawalpur",
279             "92405", "Sahiwal",
280             "92676", "Vehari",
281             "925475", "Hafizabad",
282             "92444", "Okara",
283             "926089", "Lodhran",
284             "92408", "Sahiwal",
285             "929426", "Bajaur\ Agency",
286             "925427", "Narowal",
287             "927225", "Jacobabad",
288             "92467", "Toba\ Tek\ Singh",
289             "92258", "Dadu",
290             "928537", "Lasbela",
291             "929444", "Upper\ Dir",
292             "928486", "Khuzdar",
293             "929972", "Mansehra\/Batagram",
294             "92255", "Dadu",
295             "922447", "Nawabshah",
296             "929453", "Lower\ Dir",
297             "92229", "Hyderabad",
298             "929389", "Swabi",
299             "928245", "Loralai",
300             "929373", "Mardan",
301             "92719", "Sukkur",
302             "92924", "Khyber\/Mohmand\ Agy",
303             "922428", "Naushero\ Feroze",
304             "92532", "Gujrat",
305             "929663", "D\.I\.\ Khan",
306             "928376", "Jhal\ Magsi",
307             "924572", "Pakpattan",
308             "928566", "Awaran",
309             "92682", "Rahim\ Yar\ Khan",
310             "928233", "Killa\ Saifullah",
311             "926064", "Layyah",
312             "925449", "Jhelum",
313             "92576", "Attock",
314             "929966", "Shangla",
315             "92403", "Sahiwal",
316             "92867", "Gwadar",
317             "924537", "Bhakkar",
318             "925474", "Hafizabad",
319             "928328", "Bolan",
320             "922985", "Thatta",
321             "929223", "Kohat",
322             "92472", "Jhang",
323             "92213", "Karachi",
324             "928226", "Zhob",
325             "922356", "Sanghar",
326             "92527", "Sialkot",
327             "927232", "Ghotki",
328             "922386", "Umerkot",
329             "926088", "Lodhran",
330             "928283", "Musakhel",
331             "925463", "Mandi\ Bahauddin",
332             "922323", "Tharparkar",
333             "926065", "Layyah",
334             "928253", "Chagai",
335             "928244", "Loralai",
336             "92742", "Larkana",
337             "92632", "Bahawalnagar",
338             "928442", "Kalat",
339             "929696", "Lakki\ Marwat",
340             "92817", "Quetta",
341             "929433", "Chitral",
342             "928297", "Barkhan\/Kohlu",
343             "92486", "Sargodha",
344             "928436", "Mastung",
345             "928557", "Panjgur",
346             "922429", "Naushero\ Feroze",
347             "927224", "Jacobabad",
348             "929445", "Upper\ Dir",
349             "929388", "Swabi",
350             "92253", "Dadu",
351             "92223", "Hyderabad",
352             "928287", "Musakhel",
353             "922327", "Tharparkar",
354             "928257", "Chagai",
355             "929324", "Malakand",
356             "922976", "Badin",
357             "925467", "Mandi\ Bahauddin",
358             "92672", "Vehari",
359             "929398", "Buner",
360             "929466", "Swat",
361             "925442", "Jhelum",
362             "92517", "Islamabad\/Rawalpindi",
363             "922434", "Khairpur",
364             "927239", "Ghotki",
365             "929437", "Chitral",
366             "928293", "Barkhan\/Kohlu",
367             "926046", "Rajanpur",
368             "928553", "Panjgur",
369             "925436", "Chakwal",
370             "929656", "South\ Waziristan",
371             "92713", "Sukkur",
372             "928449", "Kalat",
373             "92536", "Gujrat",
374             "924545", "Khushab",
375             "92557", "Gujranwala",
376             "92686", "Rahim\ Yar\ Khan",
377             "928526", "Kech",
378             "929978", "Mansehra\/Batagram",
379             "924533", "Bhakkar",
380             "928474", "Kharan",
381             "92567", "Sheikhupura",
382             "928335", "Sibi\/Ziarat",
383             "928354", "Dera\ Bugti",
384             "929227", "Kohat",
385             "928384", "Jaffarabad\/Nasirabad",
386             "922422", "Naushero\ Feroze",
387             "927265", "Shikarpur",
388             "924578", "Pakpattan",
389             "928533", "Lasbela",
390             "928266", "K\.Abdullah\/Pishin",
391             "92718", "Sukkur",
392             "922443", "Nawabshah",
393             "92715", "Sukkur",
394             "929399", "Buner",
395             "929636", "Tank",
396             "922435", "Khairpur",
397             "929457", "Lower\ Dir",
398             "928322", "Bolan",
399             "92644", "Dera\ Ghazi\ Khan",
400             "92476", "Jhang",
401             "929377", "Mardan",
402             "92427", "Lahore",
403             "929926", "Abottabad",
404             "92259", "Dadu",
405             "92494", "Kasur",
406             "929667", "D\.I\.\ Khan",
407             "92225", "Hyderabad",
408             "92617", "Multan",
409             "92572", "Attock",
410             "92228", "Hyderabad",
411             "928237", "Killa\ Saifullah",
412             "927238", "Ghotki",
413             "926082", "Lodhran",
414             "929325", "Malakand",
415             "92914", "Peshawar\/Charsadda",
416             "927264", "Shikarpur",
417             "924597", "Mianwali",
418             "92409", "Sahiwal",
419             "92482", "Sargodha",
420             "928334", "Sibi\/Ziarat",
421             "928355", "Dera\ Bugti",
422             "929979", "Mansehra\/Batagram",
423             "929953", "Haripur",
424             "928385", "Jaffarabad\/Nasirabad",
425             "928448", "Kalat",
426             "92746", "Larkana",
427             "92657", "Khanewal",
428             "928475", "Kharan",
429             "924579", "Pakpattan",
430             "92636", "Bahawalnagar",
431             "929382", "Swabi",
432             "924544", "Khushab",
433             "925423", "Narowal",
434             "92219", "Karachi",
435             "92667", "Muzaffargarh",
436             "928562", "Awaran",
437             "927223", "Jacobabad",
438             "924576", "Pakpattan",
439             "928372", "Jhal\ Magsi",
440             "92526", "Sialkot",
441             "929455", "Lower\ Dir",
442             "929434", "Chitral",
443             "922437", "Khairpur",
444             "92612", "Multan",
445             "92577", "Attock",
446             "929375", "Mardan",
447             "928243", "Loralai",
448             "929327", "Malakand",
449             "92866", "Gwadar",
450             "928482", "Khuzdar",
451             "925464", "Mandi\ Bahauddin",
452             "929976", "Mansehra\/Batagram",
453             "922324", "Tharparkar",
454             "928528", "Kech",
455             "928254", "Chagai",
456             "928235", "Killa\ Saifullah",
457             "92422", "Lahore",
458             "92923", "Nowshera",
459             "928284", "Musakhel",
460             "929665", "D\.I\.\ Khan",
461             "929929", "Abottabad",
462             "929658", "South\ Waziristan",
463             "925438", "Chakwal",
464             "924595", "Mianwali",
465             "926048", "Rajanpur",
466             "92487", "Sargodha",
467             "928387", "Jaffarabad\/Nasirabad",
468             "929422", "Bajaur\ Agency",
469             "929224", "Kohat",
470             "928357", "Dera\ Bugti",
471             "929468", "Swat",
472             "928269", "K\.Abdullah\/Pishin",
473             "928477", "Kharan",
474             "929639", "Tank",
475             "929396", "Buner",
476             "925473", "Hafizabad",
477             "92662", "Muzaffargarh",
478             "92652", "Khanewal",
479             "92443", "Okara",
480             "922978", "Badin",
481             "92816", "Quetta",
482             "922332", "Mirpur\ Khas",
483             "92677", "Vehari",
484             "925465", "Mandi\ Bahauddin",
485             "92928", "Bannu\/N\.\ Waziristan",
486             "928255", "Chagai",
487             "928234", "Killa\ Saifullah",
488             "926063", "Layyah",
489             "922325", "Tharparkar",
490             "928432", "Mastung",
491             "92925", "Hangu\/Orakzai\ Agy",
492             "92512", "Islamabad\/Rawalpindi",
493             "929664", "D\.I\.\ Khan",
494             "928285", "Musakhel",
495             "92649", "Dera\ Ghazi\ Khan",
496             "929374", "Mardan",
497             "928446", "Kalat",
498             "929692", "Lakki\ Marwat",
499             "929435", "Chitral",
500             "929454", "Lower\ Dir",
501             "92416", "Faisalabad",
502             "92499", "Kasur",
503             "928529", "Kech",
504             "92254", "Dadu",
505             "929443", "Upper\ Dir",
506             "92626", "Bahawalpur",
507             "927236", "Ghotki",
508             "922382", "Umerkot",
509             "92404", "Sahiwal",
510             "92919", "Peshawar\/Charsadda",
511             "92562", "Sheikhupura",
512             "924547", "Khushab",
513             "92445", "Okara",
514             "928222", "Zhob",
515             "922352", "Sanghar",
516             "926049", "Rajanpur",
517             "92448", "Okara",
518             "925439", "Chakwal",
519             "92552", "Gujranwala",
520             "929928", "Abottabad",
521             "929659", "South\ Waziristan",
522             "92466", "Toba\ Tek\ Singh",
523             "929962", "Shangla",
524             "929225", "Kohat",
525             "922983", "Thatta",
526             "928337", "Sibi\/Ziarat",
527             "922979", "Badin",
528             "929638", "Tank",
529             "92214", "Karachi",
530             "929469", "Swat",
531             "928268", "K\.Abdullah\/Pishin",
532             "927267", "Shikarpur",
533             "924594", "Mianwali",
534             "92426", "Lahore",
535             "928568", "Awaran",
536             "924543", "Khushab",
537             "925424", "Narowal",
538             "92862", "Gwadar",
539             "928378", "Jhal\ Magsi",
540             "92616", "Multan",
541             "928439", "Mastung",
542             "922426", "Naushero\ Feroze",
543             "924535", "Bhakkar",
544             "92915", "Peshawar\/Charsadda",
545             "929954", "Haripur",
546             "92449", "Okara",
547             "9258", "AJK\/FATA",
548             "92522", "Sialkot",
549             "928333", "Sibi\/Ziarat",
550             "92918", "Peshawar\/Charsadda",
551             "922987", "Thatta",
552             "928488", "Khuzdar",
553             "928522", "Kech",
554             "927263", "Shikarpur",
555             "929699", "Lakki\ Marwat",
556             "92477", "Jhang",
557             "926067", "Layyah",
558             "929652", "South\ Waziristan",
559             "92656", "Khanewal",
560             "92747", "Larkana",
561             "92498", "Kasur",
562             "925432", "Chakwal",
563             "92637", "Bahawalnagar",
564             "92495", "Kasur",
565             "92812", "Quetta",
566             "922359", "Sanghar",
567             "92224", "Hyderabad",
568             "928229", "Zhob",
569             "929428", "Bajaur\ Agency",
570             "926042", "Rajanpur",
571             "92666", "Muzaffargarh",
572             "922389", "Umerkot",
573             "928295", "Barkhan\/Kohlu",
574             "929462", "Swat",
575             "925446", "Jhelum",
576             "92714", "Sukkur",
577             "922444", "Nawabshah",
578             "929969", "Shangla",
579             "929447", "Upper\ Dir",
580             "922972", "Badin",
581             "92648", "Dera\ Ghazi\ Khan",
582             "922338", "Mirpur\ Khas",
583             "928555", "Panjgur",
584             "928534", "Lasbela",
585             "92645", "Dera\ Ghazi\ Khan",
586             "929386", "Swabi",
587             "928438", "Mastung",
588             "92622", "Bahawalpur",
589             "928383", "Jaffarabad\/Nasirabad",
590             "92913", "Peshawar\/Charsadda",
591             "929955", "Haripur",
592             "928379", "Jhal\ Magsi",
593             "928569", "Awaran",
594             "928353", "Dera\ Bugti",
595             "92412", "Faisalabad",
596             "929698", "Lakki\ Marwat",
597             "928489", "Khuzdar",
598             "924534", "Bhakkar",
599             "925477", "Hafizabad",
600             "928473", "Kharan",
601             "925425", "Narowal",
602             "92516", "Islamabad\/Rawalpindi",
603             "922445", "Nawabshah",
604             "922388", "Umerkot",
605             "926086", "Lodhran",
606             "928554", "Panjgur",
607             "928535", "Lasbela",
608             "927227", "Jacobabad",
609             "922358", "Sanghar",
610             "928228", "Zhob",
611             "929429", "Bajaur\ Agency",
612             "92643", "Dera\ Ghazi\ Khan",
613             "928294", "Barkhan\/Kohlu",
614             "92462", "Toba\ Tek\ Singh",
615             "922433", "Khairpur",
616             "929922", "Abottabad",
617             "92537", "Gujrat",
618             "922339", "Mirpur\ Khas",
619             "928326", "Bolan",
620             "929968", "Shangla",
621             "928247", "Loralai",
622             "92687", "Rahim\ Yar\ Khan",
623             "92556", "Gujranwala",
624             "92566", "Sheikhupura",
625             "929323", "Malakand",
626             "929632", "Tank",
627             "92493", "Kasur",
628             "928262", "K\.Abdullah\/Pishin",
629             "928282", "Musakhel",
630             "92529", "Sialkot",
631             "92653", "Khanewal",
632             "92442", "Okara",
633             "928435", "Mastung",
634             "92565", "Sheikhupura",
635             "922322", "Tharparkar",
636             "928252", "Chagai",
637             "92568", "Sheikhupura",
638             "929446", "Upper\ Dir",
639             "928484", "Khuzdar",
640             "924539", "Bhakkar",
641             "925462", "Mandi\ Bahauddin",
642             "92558", "Gujranwala",
643             "925447", "Jhelum",
644             "92555", "Gujranwala",
645             "928443", "Kalat",
646             "92663", "Muzaffargarh",
647             "929958", "Haripur",
648             "92869", "Gwadar",
649             "929432", "Chitral",
650             "929695", "Lakki\ Marwat",
651             "928374", "Jhal\ Magsi",
652             "926066", "Layyah",
653             "925428", "Narowal",
654             "928564", "Awaran",
655             "928538", "Lasbela",
656             "922355", "Sanghar",
657             "92518", "Islamabad\/Rawalpindi",
658             "922334", "Mirpur\ Khas",
659             "92423", "Lahore",
660             "928225", "Zhob",
661             "922448", "Nawabshah",
662             "922385", "Umerkot",
663             "92515", "Islamabad\/Rawalpindi",
664             "92534", "Gujrat",
665             "922986", "Thatta",
666             "92613", "Multan",
667             "92684", "Rahim\ Yar\ Khan",
668             "929222", "Kohat",
669             "929965", "Shangla",
670             "92819", "Quetta",
671             "929424", "Bajaur\ Agency",
672             "928559", "Panjgur",
673             "922427", "Naushero\ Feroze",
674             "928299", "Barkhan\/Kohlu",
675             "927233", "Ghotki",
676             "928375", "Jhal\ Magsi",
677             "929959", "Haripur",
678             "92646", "Dera\ Ghazi\ Khan",
679             "929973", "Mansehra\/Batagram",
680             "92474", "Jhang",
681             "928565", "Awaran",
682             "928246", "Loralai",
683             "929452", "Lower\ Dir",
684             "924538", "Bhakkar",
685             "928327", "Bolan",
686             "929694", "Lakki\ Marwat",
687             "929372", "Mardan",
688             "925429", "Narowal",
689             "92668", "Muzaffargarh",
690             "92553", "Gujranwala",
691             "92629", "Bahawalpur",
692             "92665", "Muzaffargarh",
693             "92655", "Khanewal",
694             "929662", "D\.I\.\ Khan",
695             "927226", "Jacobabad",
696             "924573", "Pakpattan",
697             "92563", "Sheikhupura",
698             "928434", "Mastung",
699             "928232", "Killa\ Saifullah",
700             "92419", "Faisalabad",
701             "92658", "Khanewal",
702             "92496", "Kasur",
703             "926087", "Lodhran",
704             "928485", "Khuzdar",
705             "924592", "Mianwali",
706             "925476", "Hafizabad",
707             "929393", "Buner",
708             "92916", "Peshawar\/Charsadda",
709             "929964", "Shangla",
710             "922449", "Nawabshah",
711             "929425", "Bajaur\ Agency",
712             "92717", "Sukkur",
713             "928539", "Lasbela",
714             "92227", "Hyderabad",
715             "92615", "Multan",
716             "928298", "Barkhan\/Kohlu",
717             "92618", "Multan",
718             "92469", "Toba\ Tek\ Singh",
719             "928224", "Zhob",
720             "92744", "Larkana",
721             "92425", "Lahore",
722             "922335", "Mirpur\ Khas",
723             "922354", "Sanghar",
724             "928558", "Panjgur",
725             "929387", "Swabi",
726             "92634", "Bahawalnagar",
727             "922384", "Umerkot",
728             "92513", "Islamabad\/Rawalpindi",
729             "92428", "Lahore",
730             "92619", "Multan",
731             "928288", "Musakhel",
732             "928258", "Chagai",
733             "928524", "Kech",
734             "922328", "Tharparkar",
735             "925468", "Mandi\ Bahauddin",
736             "929459", "Lower\ Dir",
737             "92429", "Lahore",
738             "928476", "Kharan",
739             "92465", "Toba\ Tek\ Singh",
740             "929397", "Buner",
741             "929952", "Haripur",
742             "92257", "Dadu",
743             "92468", "Toba\ Tek\ Singh",
744             "928239", "Killa\ Saifullah",
745             "929438", "Chitral",
746             "928356", "Dera\ Bugti",
747             "929669", "D\.I\.\ Khan",
748             "928386", "Jaffarabad\/Nasirabad",
749             "92674", "Vehari",
750             "92446", "Okara",
751             "925422", "Narowal",
752             "929379", "Mardan",
753             "92998", "Kohistan",
754             "929383", "Swabi",
755             "92813", "Quetta",
756             "92628", "Bahawalpur",
757             "928532", "Lasbela",
758             "92669", "Muzaffargarh",
759             "922974", "Badin",
760             "929326", "Malakand",
761             "92217", "Karachi",
762             "929977", "Mansehra\/Batagram",
763             "922442", "Nawabshah",
764             "92625", "Bahawalpur",
765             "929925", "Abottabad",
766             "92418", "Faisalabad",
767             "92659", "Khanewal",
768             "92523", "Sialkot",
769             "928323", "Bolan",
770             "924599", "Mianwali",
771             "929464", "Swat",
772             "92415", "Faisalabad",
773             "929228", "Kohat",
774             "922436", "Khairpur",
775             "926044", "Rajanpur",
776             "928265", "K\.Abdullah\/Pishin",
777             "92407", "Sahiwal",
778             "925434", "Chakwal",
779             "924577", "Pakpattan",
780             "92863", "Gwadar",
781             "929654", "South\ Waziristan",
782             "926083", "Lodhran",
783             "929635", "Tank",
784             "92926", "Kurram\ Agency",
785             "927266", "Shikarpur",
786             "92818", "Quetta",
787             "92492", "Kasur",
788             "92815", "Quetta",
789             "928259", "Chagai",
790             "922329", "Tharparkar",
791             "925469", "Mandi\ Bahauddin",
792             "924532", "Bhakkar",
793             "928336", "Sibi\/Ziarat",
794             "929458", "Lower\ Dir",
795             "92574", "Attock",
796             "928289", "Musakhel",
797             "929378", "Mardan",
798             "92463", "Toba\ Tek\ Singh",
799             "922423", "Naushero\ Feroze",
800             "92519", "Islamabad\/Rawalpindi",
801             "929668", "D\.I\.\ Khan",
802             "927237", "Ghotki",
803             "928525", "Kech",
804             "928238", "Killa\ Saifullah",
805             "929439", "Chitral",
806             "924546", "Khushab",
807             "92642", "Dera\ Ghazi\ Khan",
808             "924598", "Mianwali",
809             "928264", "K\.Abdullah\/Pishin",
810             "92865", "Gwadar",
811             "925435", "Chakwal",
812             "929634", "Tank",
813             "929655", "South\ Waziristan",
814             "92868", "Gwadar",
815             "926045", "Rajanpur",
816             "928447", "Kalat",
817             "925443", "Jhelum",
818             "92569", "Sheikhupura",
819             "929924", "Abottabad",
820             "92912", "Peshawar\/Charsadda",
821             "92525", "Sialkot",
822             "92484", "Sargodha",
823             "92413", "Faisalabad",
824             "929465", "Swat",
825             "928292", "Barkhan\/Kohlu",
826             "92528", "Sialkot",
827             "928552", "Panjgur",
828             "922975", "Badin",
829             "92623", "Bahawalpur",
830             "929229", "Kohat",
831             "92559", "Gujranwala",
832             "92533", "Gujrat",
833             "92614", "Multan",
834             "922383", "Umerkot",
835             "928223", "Zhob",
836             "92683", "Rahim\ Yar\ Khan",
837             "922353", "Sanghar",
838             "92638", "Bahawalnagar",
839             "92424", "Lahore",
840             "92745", "Larkana",
841             "92635", "Bahawalnagar",
842             "922438", "Khairpur",
843             "929226", "Kohat",
844             "92497", "Kasur",
845             "92748", "Larkana",
846             "929394", "Buner",
847             "929963", "Shangla",
848             "92647", "Dera\ Ghazi\ Khan",
849             "922982", "Thatta",
850             "929328", "Malakand",
851             "92679", "Vehari",
852             "928527", "Kech",
853             "927235", "Ghotki",
854             "926062", "Layyah",
855             "929657", "South\ Waziristan",
856             "92226", "Hyderabad",
857             "925437", "Chakwal",
858             "924574", "Pakpattan",
859             "92664", "Muzaffargarh",
860             "928433", "Mastung",
861             "92654", "Khanewal",
862             "928445", "Kalat",
863             "928388", "Jaffarabad\/Nasirabad",
864             "926047", "Rajanpur",
865             "924549", "Khushab",
866             "928358", "Dera\ Bugti",
867             "929436", "Chitral",
868             "92478", "Jhang",
869             "929467", "Swat",
870             "927269", "Shikarpur",
871             "929693", "Lakki\ Marwat",
872             "928478", "Kharan",
873             "92475", "Jhang",
874             "922326", "Tharparkar",
875             "929974", "Mansehra\/Batagram",
876             "92917", "Peshawar\/Charsadda",
877             "928256", "Chagai",
878             "929442", "Upper\ Dir",
879             "922977", "Badin",
880             "928339", "Sibi\/Ziarat",
881             "925466", "Mandi\ Bahauddin",
882             "928286", "Musakhel",
883             "92716", "Sukkur",
884             "927234", "Ghotki",
885             "922439", "Khairpur",
886             "92252", "Dadu",
887             "929423", "Bajaur\ Agency",
888             "929395", "Buner",
889             "92579", "Attock",
890             "92743", "Larkana",
891             "92633", "Bahawalnagar",
892             "929329", "Malakand",
893             "925472", "Hafizabad",
894             "92514", "Islamabad\/Rawalpindi",
895             "92535", "Gujrat",
896             "92688", "Rahim\ Yar\ Khan",
897             "92538", "Gujrat",
898             "924596", "Mianwali",
899             "922333", "Mirpur\ Khas",
900             "92685", "Rahim\ Yar\ Khan",
901             "928236", "Killa\ Saifullah",
902             "929975", "Mansehra\/Batagram",
903             "928359", "Dera\ Bugti",
904             "924548", "Khushab",
905             "928563", "Awaran",
906             "927222", "Jacobabad",
907             "929666", "D\.I\.\ Khan",
908             "928373", "Jhal\ Magsi",
909             "928389", "Jaffarabad\/Nasirabad",
910             "92473", "Jhang",
911             "929376", "Mardan",
912             "92212", "Karachi",
913             "929927", "Abottabad",
914             "92489", "Sargodha",
915             "92402", "Sahiwal",
916             "928444", "Kalat",
917             "92564", "Sheikhupura",
918             "928242", "Loralai",
919             "929456", "Lower\ Dir",
920             "928338", "Sibi\/Ziarat",
921             "928479", "Kharan",
922             "928483", "Khuzdar",
923             "929637", "Tank",
924             "924575", "Pakpattan",
925             "92554", "Gujranwala",
926             "927268", "Shikarpur",
927             "928267", "K\.Abdullah\/Pishin",
928             "928567", "Awaran",
929             "92524", "Sialkot",
930             "92485", "Sargodha",
931             "928377", "Jhal\ Magsi",
932             "92488", "Sargodha",
933             "928325", "Bolan",
934             "929923", "Abottabad",
935             "922432", "Khairpur",
936             "92864", "Gwadar",
937             "925444", "Jhelum",
938             "922988", "Thatta",
939             "929322", "Malakand",
940             "925479", "Hafizabad",
941             "928487", "Khuzdar",
942             "926085", "Lodhran",
943             "929633", "Tank",
944             "922446", "Nawabshah",
945             "928263", "K\.Abdullah\/Pishin",
946             "928536", "Lasbela",
947             "925426", "Narowal",
948             "926068", "Layyah",
949             "92712", "Sukkur",
950             "927229", "Jacobabad",
951             "922424", "Naushero\ Feroze",
952             "928382", "Jaffarabad\/Nasirabad",
953             "92539", "Gujrat",
954             "929427", "Bajaur\ Agency",
955             "92689", "Rahim\ Yar\ Khan",
956             "928352", "Dera\ Bugti",
957             "92673", "Vehari",
958             "929956", "Haripur",
959             "928472", "Kharan",
960             "92814", "Quetta",
961             "92578", "Attock",
962             "92222", "Hyderabad",
963             "928249", "Loralai",
964             "929385", "Swabi",
965             "929448", "Upper\ Dir",
966             "922337", "Mirpur\ Khas",
967             "92575", "Attock",
968             "929653", "South\ Waziristan",
969             "926084", "Lodhran",
970             "928437", "Mastung",
971             "928556", "Panjgur",
972             "925433", "Chakwal",
973             "92479", "Jhang",
974             "926043", "Rajanpur",
975             "925445", "Jhelum",
976             "92447", "Okara",
977             "928296", "Barkhan\/Kohlu",
978             "928324", "Bolan",
979             "929697", "Lakki\ Marwat",
980             "929463", "Swat",
981             "925478", "Hafizabad",
982             "92624", "Bahawalpur",
983             "922973", "Badin",
984             "922989", "Thatta",
985             "92483", "Sargodha",
986             "92256", "Dadu",
987             "92414", "Faisalabad",
988             "922387", "Umerkot",
989             "929384", "Swabi",
990             "924542", "Khushab",
991             "928227", "Zhob",
992             "92573", "Attock",
993             "922357", "Sanghar",
994             "927228", "Jacobabad",
995             "92675", "Vehari",
996             "92406", "Sahiwal",
997             "926069", "Layyah",
998             "92927", "Karak",
999             "92678", "Vehari",
1000             "922425", "Naushero\ Feroze",
1001             "929967", "Shangla",
1002             "928248", "Loralai",
1003             "92216", "Karachi",
1004             "928332", "Sibi\/Ziarat",
1005             "924536", "Bhakkar",
1006             "929449", "Upper\ Dir",
1007             "92749", "Larkana",
1008             "928523", "Kech",
1009             "92464", "Toba\ Tek\ Singh",
1010             "927262", "Shikarpur",
1011             "92639", "Bahawalnagar",};
1012              
1013             sub new {
1014 19     19 1 48 my $class = shift;
1015 19         33 my $number = shift;
1016 19         123 $number =~ s/(^\+92|\D)//g;
1017 19         105 my $self = bless({ country_code => '92', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1018 19 100       99 return $self if ($self->is_valid());
1019 1         2 $number =~ s/^(?:0)//;
1020 1         16 $self = bless({ country_code => '92', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1021 1 50       15 return $self->is_valid() ? $self : undef;
1022             }
1023             1;