File Coverage

blib/lib/Number/Phone/StubCountry/GB.pm
Criterion Covered Total %
statement 20 20 100.0
branch 4 4 100.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 30 30 100.0


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::GB;
20 19     19   11716 use base qw(Number::Phone::StubCountry);
  19         146  
  19         1933  
21              
22 19     19   261 use strict;
  19         48  
  19         421  
23 19     19   111 use warnings;
  19         48  
  19         472  
24 19     19   98 use utf8;
  19         48  
  19         141  
25             our $VERSION = 1.20230903131447;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2',
30             'leading_digits' => '8001111',
31             'national_rule' => '0$1',
32             'pattern' => '(\\d{3})(\\d{4})'
33             },
34             {
35             'format' => '$1 $2 $3',
36             'leading_digits' => '845464',
37             'national_rule' => '0$1',
38             'pattern' => '(\\d{3})(\\d{2})(\\d{2})'
39             },
40             {
41             'format' => '$1 $2',
42             'leading_digits' => '800',
43             'national_rule' => '0$1',
44             'pattern' => '(\\d{3})(\\d{6})'
45             },
46             {
47             'format' => '$1 $2',
48             'leading_digits' => '
49             1(?:
50             3873|
51             5(?:
52             242|
53             39[4-6]
54             )|
55             (?:
56             697|
57             768
58             )[347]|
59             9467
60             )
61             ',
62             'national_rule' => '0$1',
63             'pattern' => '(\\d{5})(\\d{4,5})'
64             },
65             {
66             'format' => '$1 $2',
67             'leading_digits' => '
68             1(?:
69             [2-69][02-9]|
70             [78]
71             )
72             ',
73             'national_rule' => '0$1',
74             'pattern' => '(\\d{4})(\\d{5,6})'
75             },
76             {
77             'format' => '$1 $2 $3',
78             'leading_digits' => '
79             [25]|
80             7(?:
81             0|
82             6(?:
83             [03-9]|
84             2[356]
85             )
86             )
87             ',
88             'national_rule' => '0$1',
89             'pattern' => '(\\d{2})(\\d{4})(\\d{4})'
90             },
91             {
92             'format' => '$1 $2',
93             'leading_digits' => '7',
94             'national_rule' => '0$1',
95             'pattern' => '(\\d{4})(\\d{6})'
96             },
97             {
98             'format' => '$1 $2 $3',
99             'leading_digits' => '[1389]',
100             'national_rule' => '0$1',
101             'pattern' => '(\\d{3})(\\d{3})(\\d{4})'
102             }
103             ];
104              
105             my $validators = {
106             'fixed_line' => '
107             (?:
108             1(?:
109             1(?:
110             3(?:
111             [0-58]\\d\\d|
112             73[0235]
113             )|
114             4(?:
115             [0-5]\\d\\d|
116             69[7-9]|
117             70[0-79]
118             )|
119             (?:
120             (?:
121             5[0-26-9]|
122             [78][0-49]
123             )\\d|
124             6(?:
125             [0-4]\\d|
126             50
127             )
128             )\\d
129             )|
130             (?:
131             2(?:
132             (?:
133             0[024-9]|
134             2[3-9]|
135             3[3-79]|
136             4[1-689]|
137             [58][02-9]|
138             6[0-47-9]|
139             7[013-9]|
140             9\\d
141             )\\d|
142             1(?:
143             [0-7]\\d|
144             8[0-2]
145             )
146             )|
147             (?:
148             3(?:
149             0\\d|
150             1[0-8]|
151             [25][02-9]|
152             3[02-579]|
153             [468][0-46-9]|
154             7[1-35-79]|
155             9[2-578]
156             )|
157             4(?:
158             0[03-9]|
159             [137]\\d|
160             [28][02-57-9]|
161             4[02-69]|
162             5[0-8]|
163             [69][0-79]
164             )|
165             5(?:
166             0[1-35-9]|
167             [16]\\d|
168             2[024-9]|
169             3[015689]|
170             4[02-9]|
171             5[03-9]|
172             7[0-35-9]|
173             8[0-468]|
174             9[0-57-9]
175             )|
176             6(?:
177             0[034689]|
178             1\\d|
179             2[0-35689]|
180             [38][013-9]|
181             4[1-467]|
182             5[0-69]|
183             6[13-9]|
184             7[0-8]|
185             9[0-24578]
186             )|
187             7(?:
188             0[0246-9]|
189             2\\d|
190             3[0236-8]|
191             4[03-9]|
192             5[0-46-9]|
193             6[013-9]|
194             7[0-35-9]|
195             8[024-9]|
196             9[02-9]
197             )|
198             8(?:
199             0[35-9]|
200             2[1-57-9]|
201             3[02-578]|
202             4[0-578]|
203             5[124-9]|
204             6[2-69]|
205             7\\d|
206             8[02-9]|
207             9[02569]
208             )|
209             9(?:
210             0[02-589]|
211             [18]\\d|
212             2[02-689]|
213             3[1-57-9]|
214             4[2-9]|
215             5[0-579]|
216             6[2-47-9]|
217             7[0-24578]|
218             9[2-57]
219             )
220             )\\d
221             )\\d
222             )|
223             2(?:
224             0[013478]|
225             3[0189]|
226             4[017]|
227             8[0-46-9]|
228             9[0-2]
229             )\\d{3}
230             )\\d{4}|
231             1(?:
232             2(?:
233             0(?:
234             46[1-4]|
235             87[2-9]
236             )|
237             545[1-79]|
238             76(?:
239             2\\d|
240             3[1-8]|
241             6[1-6]
242             )|
243             9(?:
244             7(?:
245             2[0-4]|
246             3[2-5]
247             )|
248             8(?:
249             2[2-8]|
250             7[0-47-9]|
251             8[3-5]
252             )
253             )
254             )|
255             3(?:
256             6(?:
257             38[2-5]|
258             47[23]
259             )|
260             8(?:
261             47[04-9]|
262             64[0157-9]
263             )
264             )|
265             4(?:
266             044[1-7]|
267             20(?:
268             2[23]|
269             8\\d
270             )|
271             6(?:
272             0(?:
273             30|
274             5[2-57]|
275             6[1-8]|
276             7[2-8]
277             )|
278             140
279             )|
280             8(?:
281             052|
282             87[1-3]
283             )
284             )|
285             5(?:
286             2(?:
287             4(?:
288             3[2-79]|
289             6\\d
290             )|
291             76\\d
292             )|
293             6(?:
294             26[06-9]|
295             686
296             )
297             )|
298             6(?:
299             06(?:
300             4\\d|
301             7[4-79]
302             )|
303             295[5-7]|
304             35[34]\\d|
305             47(?:
306             24|
307             61
308             )|
309             59(?:
310             5[08]|
311             6[67]|
312             74
313             )|
314             9(?:
315             55[0-4]|
316             77[23]
317             )
318             )|
319             7(?:
320             26(?:
321             6[13-9]|
322             7[0-7]
323             )|
324             (?:
325             442|
326             688
327             )\\d|
328             50(?:
329             2[0-3]|
330             [3-68]2|
331             76
332             )
333             )|
334             8(?:
335             27[56]\\d|
336             37(?:
337             5[2-5]|
338             8[239]
339             )|
340             843[2-58]
341             )|
342             9(?:
343             0(?:
344             0(?:
345             6[1-8]|
346             85
347             )|
348             52\\d
349             )|
350             3583|
351             4(?:
352             66[1-8]|
353             9(?:
354             2[01]|
355             81
356             )
357             )|
358             63(?:
359             23|
360             3[1-4]
361             )|
362             9561
363             )
364             )\\d{3}
365             ',
366             'geographic' => '
367             (?:
368             1(?:
369             1(?:
370             3(?:
371             [0-58]\\d\\d|
372             73[0235]
373             )|
374             4(?:
375             [0-5]\\d\\d|
376             69[7-9]|
377             70[0-79]
378             )|
379             (?:
380             (?:
381             5[0-26-9]|
382             [78][0-49]
383             )\\d|
384             6(?:
385             [0-4]\\d|
386             50
387             )
388             )\\d
389             )|
390             (?:
391             2(?:
392             (?:
393             0[024-9]|
394             2[3-9]|
395             3[3-79]|
396             4[1-689]|
397             [58][02-9]|
398             6[0-47-9]|
399             7[013-9]|
400             9\\d
401             )\\d|
402             1(?:
403             [0-7]\\d|
404             8[0-2]
405             )
406             )|
407             (?:
408             3(?:
409             0\\d|
410             1[0-8]|
411             [25][02-9]|
412             3[02-579]|
413             [468][0-46-9]|
414             7[1-35-79]|
415             9[2-578]
416             )|
417             4(?:
418             0[03-9]|
419             [137]\\d|
420             [28][02-57-9]|
421             4[02-69]|
422             5[0-8]|
423             [69][0-79]
424             )|
425             5(?:
426             0[1-35-9]|
427             [16]\\d|
428             2[024-9]|
429             3[015689]|
430             4[02-9]|
431             5[03-9]|
432             7[0-35-9]|
433             8[0-468]|
434             9[0-57-9]
435             )|
436             6(?:
437             0[034689]|
438             1\\d|
439             2[0-35689]|
440             [38][013-9]|
441             4[1-467]|
442             5[0-69]|
443             6[13-9]|
444             7[0-8]|
445             9[0-24578]
446             )|
447             7(?:
448             0[0246-9]|
449             2\\d|
450             3[0236-8]|
451             4[03-9]|
452             5[0-46-9]|
453             6[013-9]|
454             7[0-35-9]|
455             8[024-9]|
456             9[02-9]
457             )|
458             8(?:
459             0[35-9]|
460             2[1-57-9]|
461             3[02-578]|
462             4[0-578]|
463             5[124-9]|
464             6[2-69]|
465             7\\d|
466             8[02-9]|
467             9[02569]
468             )|
469             9(?:
470             0[02-589]|
471             [18]\\d|
472             2[02-689]|
473             3[1-57-9]|
474             4[2-9]|
475             5[0-579]|
476             6[2-47-9]|
477             7[0-24578]|
478             9[2-57]
479             )
480             )\\d
481             )\\d
482             )|
483             2(?:
484             0[013478]|
485             3[0189]|
486             4[017]|
487             8[0-46-9]|
488             9[0-2]
489             )\\d{3}
490             )\\d{4}|
491             1(?:
492             2(?:
493             0(?:
494             46[1-4]|
495             87[2-9]
496             )|
497             545[1-79]|
498             76(?:
499             2\\d|
500             3[1-8]|
501             6[1-6]
502             )|
503             9(?:
504             7(?:
505             2[0-4]|
506             3[2-5]
507             )|
508             8(?:
509             2[2-8]|
510             7[0-47-9]|
511             8[3-5]
512             )
513             )
514             )|
515             3(?:
516             6(?:
517             38[2-5]|
518             47[23]
519             )|
520             8(?:
521             47[04-9]|
522             64[0157-9]
523             )
524             )|
525             4(?:
526             044[1-7]|
527             20(?:
528             2[23]|
529             8\\d
530             )|
531             6(?:
532             0(?:
533             30|
534             5[2-57]|
535             6[1-8]|
536             7[2-8]
537             )|
538             140
539             )|
540             8(?:
541             052|
542             87[1-3]
543             )
544             )|
545             5(?:
546             2(?:
547             4(?:
548             3[2-79]|
549             6\\d
550             )|
551             76\\d
552             )|
553             6(?:
554             26[06-9]|
555             686
556             )
557             )|
558             6(?:
559             06(?:
560             4\\d|
561             7[4-79]
562             )|
563             295[5-7]|
564             35[34]\\d|
565             47(?:
566             24|
567             61
568             )|
569             59(?:
570             5[08]|
571             6[67]|
572             74
573             )|
574             9(?:
575             55[0-4]|
576             77[23]
577             )
578             )|
579             7(?:
580             26(?:
581             6[13-9]|
582             7[0-7]
583             )|
584             (?:
585             442|
586             688
587             )\\d|
588             50(?:
589             2[0-3]|
590             [3-68]2|
591             76
592             )
593             )|
594             8(?:
595             27[56]\\d|
596             37(?:
597             5[2-5]|
598             8[239]
599             )|
600             843[2-58]
601             )|
602             9(?:
603             0(?:
604             0(?:
605             6[1-8]|
606             85
607             )|
608             52\\d
609             )|
610             3583|
611             4(?:
612             66[1-8]|
613             9(?:
614             2[01]|
615             81
616             )
617             )|
618             63(?:
619             23|
620             3[1-4]
621             )|
622             9561
623             )
624             )\\d{3}
625             ',
626             'mobile' => '
627             7(?:
628             457[0-57-9]|
629             700[01]|
630             911[028]
631             )\\d{5}|
632             7(?:
633             [1-3]\\d\\d|
634             4(?:
635             [0-46-9]\\d|
636             5[0-689]
637             )|
638             5(?:
639             0[0-8]|
640             [13-9]\\d|
641             2[0-35-9]
642             )|
643             7(?:
644             0[1-9]|
645             [1-7]\\d|
646             8[02-9]|
647             9[0-689]
648             )|
649             8(?:
650             [014-9]\\d|
651             [23][0-8]
652             )|
653             9(?:
654             [024-9]\\d|
655             1[02-9]|
656             3[0-689]
657             )
658             )\\d{6}
659             ',
660             'pager' => '
661             76(?:
662             464|
663             652
664             )\\d{5}|
665             76(?:
666             0[0-28]|
667             2[356]|
668             34|
669             4[01347]|
670             5[49]|
671             6[0-369]|
672             77|
673             8[14]|
674             9[139]
675             )\\d{6}
676             ',
677             'personal_number' => '70\\d{8}',
678             'specialrate' => '(
679             (?:
680             8(?:
681             4[2-5]|
682             7[0-3]
683             )|
684             9(?:
685             [01]\\d|
686             8[2-49]
687             )
688             )\\d{7}|
689             845464\\d
690             )|(
691             (?:
692             3[0347]|
693             55
694             )\\d{8}
695             )',
696             'toll_free' => '
697             80[08]\\d{7}|
698             800\\d{6}|
699             8001111
700             ',
701             'voip' => '56\\d{8}'
702             };
703             my %areanames = ();
704             $areanames{en} = {"441842", "Thetford",
705             "4414307", "Market\ Weighton",
706             "441334", "St\ Andrews",
707             "441697", "Brampton",
708             "441644", "New\ Galloway",
709             "442310", "Portsmouth",
710             "441931", "Shap",
711             "441304", "Dover",
712             "441278", "Bridgwater",
713             "441584", "Ludlow",
714             "442824", "Northern\ Ireland",
715             "441886", "Bromyard\ \(Knightwick\/Leigh\ Sinton\)",
716             "441830", "Kirkwhelpington",
717             "4414349", "Bellingham",
718             "441476", "Grantham",
719             "441275", "Clevedon",
720             "441263", "Cromer",
721             "441995", "Garstang",
722             "441387", "Dumfries",
723             "442871", "Londonderry",
724             "441204", "Bolton",
725             "4414378", "Haverfordwest",
726             "442894", "Antrim",
727             "442847", "Northern\ Ireland",
728             "441562", "Kidderminster",
729             "4419648", "Hornsea",
730             "4414237", "Harrogate",
731             "441918", "Tyneside",
732             "441928", "Runcorn",
733             "441666", "Malmesbury",
734             "441375", "Grays\ Thurrock",
735             "44292", "Cardiff",
736             "44291", "Cardiff",
737             "4414371", "Haverfordwest\/Clynderwen\ \(Clunderwen\)",
738             "441915", "Sunderland",
739             "441363", "Crediton",
740             "441287", "Guisborough",
741             "4412290", "Barrow\-in\-Furness\/Millom",
742             "441925", "Warrington",
743             "4419641", "Hornsea\/Patrington",
744             "441234", "Bedford",
745             "441823", "Taunton",
746             "441765", "Ripon",
747             "4418513", "Stornoway",
748             "441757", "Selby",
749             "441773", "Ripley",
750             "4419755", "Alford\ \(Aberdeen\)",
751             "441768", "Penrith",
752             "4419754", "Alford\ \(Aberdeen\)",
753             "441569", "Stonehaven",
754             "441806", "Shetland",
755             "441262", "Bridlington",
756             "441384", "Dudley",
757             "441945", "Wisbech",
758             "441899", "Biggar",
759             "4419649", "Hornsea",
760             "441307", "Forfar",
761             "442827", "Ballymoney",
762             "4414379", "Haverfordwest",
763             "4415073", "Louth",
764             "441948", "Whitchurch",
765             "441981", "Wormbridge",
766             "4413873", "Langholm",
767             "441880", "Tarbert",
768             "441470", "Isle\ of\ Skye\ \-\ Edinbane",
769             "4414302", "North\ Cave",
770             "4416973", "Wigton",
771             "441461", "Gretna",
772             "441534", "Jersey",
773             "441269", "Ammanford",
774             "441337", "Ladybank",
775             "441843", "Thanet",
776             "441694", "Church\ Stretton",
777             "441647", "Moretonhampstead",
778             "441892", "Tunbridge\ Wells",
779             "442866", "Enniskillen",
780             "4413882", "Stanhope\ \(Eastgate\)",
781             "441671", "Newton\ Stewart",
782             "441369", "Dunoon",
783             "441237", "Bideford",
784             "4417683", "Appleby",
785             "441822", "Tavistock",
786             "441624", "Isle\ of\ Man",
787             "441754", "Skegness",
788             "441772", "Preston",
789             "4414341", "Bellingham\/Haltwhistle\/Hexham",
790             "441779", "Peterhead",
791             "441362", "Dereham",
792             "441829", "Tarporley",
793             "441284", "Bury\ St\ Edmunds",
794             "441578", "Lauder",
795             "44114700", "Sheffield",
796             "4414232", "Harrogate",
797             "441207", "Consett",
798             "44141", "Glasgow",
799             "442897", "Saintfield",
800             "4414348", "Hexham",
801             "441950", "Sandwick",
802             "442844", "Downpatrick",
803             "4419756", "Strathdon",
804             "441563", "Kilmarnock",
805             "441575", "Kirriemuir",
806             "441944", "West\ Heslerton",
807             "441505", "Johnstone",
808             "441732", "Sevenoaks",
809             "441997", "Strathpeffer",
810             "441253", "Blackpool",
811             "44238", "Southampton",
812             "4417687", "Keswick",
813             "441277", "Brentwood",
814             "441591", "Llanwrtyd\ Wells",
815             "441631", "Oban",
816             "441508", "Brooke",
817             "4418512", "Stornoway",
818             "441388", "Bishop\ Auckland",
819             "441341", "Barmouth",
820             "441796", "Pitlochry",
821             "441709", "Rotherham",
822             "441535", "Keighley",
823             "441702", "Southend\-on\-Sea",
824             "4412298", "Barrow\-in\-Furness",
825             "441740", "Sedgefield",
826             "441698", "Motherwell",
827             "441538", "Ipstones",
828             "4414370", "Haverfordwest\/Clynderwen\ \(Clunderwen\)",
829             "4419640", "Hornsea\/Patrington",
830             "4418906", "Ayton",
831             "4412291", "Barrow\-in\-Furness\/Millom",
832             "441695", "Skelmersdale",
833             "441758", "Pwllheli",
834             "4415077", "Louth",
835             "441628", "Maidenhead",
836             "441559", "Llandysul",
837             "441442", "Hemel\ Hempstead",
838             "441493", "Great\ Yarmouth",
839             "441400", "Honington",
840             "441625", "Macclesfield",
841             "441767", "Sandy",
842             "441917", "Sunderland",
843             "441285", "Cirencester",
844             "441449", "Stowmarket",
845             "441353", "Ely",
846             "442881", "Newtownstewart",
847             "442848", "Northern\ Ireland",
848             "441377", "Driffield",
849             "441726", "St\ Austell",
850             "441288", "Bude",
851             "441241", "Arbroath",
852             "441143", "Sheffield",
853             "442845", "Northern\ Ireland",
854             "44114704", "Sheffield",
855             "441876", "Lochmaddy",
856             "441656", "Bridgend",
857             "4414340", "Bellingham\/Haltwhistle\/Hexham",
858             "441259", "Alloa",
859             "441422", "Halifax",
860             "441782", "Stoke\-on\-Trent",
861             "441335", "Ashbourne",
862             "4414233", "Boroughbridge",
863             "441681", "Isle\ of\ Mull\ \-\ Fionnphort",
864             "441790", "Spilsby",
865             "441451", "Stow\-on\-the\-Wold",
866             "441746", "Bridgnorth",
867             "442825", "Ballymena",
868             "441305", "Dorchester",
869             "44114702", "Sheffield",
870             "441789", "Stratford\-upon\-Avon",
871             "441733", "Peterborough",
872             "441947", "Whitby",
873             "4418904", "Coldstream",
874             "4418517", "Stornoway",
875             "441994", "St\ Clears",
876             "441252", "Aldershot",
877             "442828", "Larne",
878             "441588", "Bishops\ Castle",
879             "441429", "Hartlepool",
880             "4418905", "Ayton",
881             "441274", "Bradford",
882             "441308", "Bridport",
883             "441291", "Chepstow",
884             "441577", "Kinross",
885             "441142", "Sheffield",
886             "441553", "Kings\ Lynn",
887             "441971", "Scourie",
888             "441205", "Boston",
889             "442895", "Belfast",
890             "441924", "Wakefield",
891             "441406", "Holbeach",
892             "441914", "Tyneside",
893             "441352", "Mold",
894             "4414303", "North\ Cave",
895             "442898", "Belfast",
896             "441208", "Bodmin",
897             "441499", "Inveraray",
898             "441443", "Pontypridd",
899             "441359", "Pakenham",
900             "4415072", "Spilsby\ \(Horncastle\)",
901             "441492", "Colwyn\ Bay",
902             "441764", "Crieff",
903             "441235", "Abingdon",
904             "4412299", "Millom",
905             "441436", "Helensburgh",
906             "441480", "Huntingdon",
907             "441870", "Isle\ of\ Benbecula",
908             "441650", "Cemmaes\ Road",
909             "441720", "Isles\ of\ Scilly",
910             "441933", "Wellingborough",
911             "441747", "Shaftesbury",
912             "441989", "Ross\-on\-Wye",
913             "4418519", "Great\ Bernera",
914             "441794", "Romsey",
915             "4415395", "Grange\-over\-Sands",
916             "441462", "Hitchin",
917             "441808", "Tomatin",
918             "4415394", "Hawkshead",
919             "44131", "Edinburgh",
920             "44280", "Northern\ Ireland",
921             "441946", "Whitehaven",
922             "4414300", "North\ Cave\/Market\ Weighton",
923             "441805", "Torrington",
924             "4418475", "Thurso",
925             "441903", "Worthing",
926             "441270", "Crewe",
927             "4418474", "Thurso",
928             "441838", "Dalmally",
929             "4413396", "Ballater",
930             "441261", "Banff",
931             "4415078", "Alford\ \(Lincs\)",
932             "442868", "Kesh",
933             "44283", "Northern\ Ireland",
934             "441469", "Killingholme",
935             "4415071", "Louth\/Alford\ \(Lincs\)\/Spilsby\ \(Horncastle\)",
936             "441982", "Builth\ Wells",
937             "4416866", "Newtown",
938             "441835", "St\ Boswells",
939             "4412297", "Millom",
940             "4414343", "Haltwhistle",
941             "441920", "Ware",
942             "441910", "Tyneside\/Durham\/Sunderland",
943             "441361", "Duns",
944             "4414230", "Harrogate\/Boroughbridge",
945             "441859", "Harris",
946             "441724", "Scunthorpe",
947             "441576", "Lockerbie",
948             "441484", "Huddersfield",
949             "441852", "Kilmelford",
950             "441672", "Marlborough",
951             "441654", "Machynlleth",
952             "441874", "Brecon",
953             "441760", "Swaffham",
954             "44121", "Birmingham",
955             "441407", "Holyhead",
956             "441821", "Kinrossie",
957             "4413880", "Bishop\ Auckland\/Stanhope\ \(Eastgate\)",
958             "441771", "Maud",
959             "44114703", "Sheffield",
960             "4415396", "Sedbergh",
961             "441939", "Wem",
962             "441983", "Isle\ of\ Wight",
963             "441902", "Wolverhampton",
964             "441478", "Isle\ of\ Skye\ \-\ Portree",
965             "4413394", "Ballater",
966             "442879", "Magherafelt",
967             "4418476", "Tongue",
968             "441888", "Turriff",
969             "441841", "Newquay\ \(Padstow\)",
970             "441909", "Worksop",
971             "4413395", "Aboyne",
972             "441276", "Camberley",
973             "441744", "St\ Helens",
974             "441932", "Weybridge",
975             "441475", "Greenock",
976             "4416864", "Llanidloes",
977             "441885", "Pencombe",
978             "441797", "Rye",
979             "441463", "Inverness",
980             "4416865", "Newtown",
981             "44151", "Liverpool",
982             "44247", "Coventry",
983             "441668", "Bamburgh",
984             "441926", "Warwick",
985             "441404", "Honiton",
986             "441916", "Tyneside",
987             "4418511", "Great\ Bernera\/Stornoway",
988             "441376", "Braintree",
989             "441665", "Alnwick",
990             "441727", "St\ Albans",
991             "441487", "Warboys",
992             "44115", "Nottingham",
993             "441673", "Market\ Rasen",
994             "4418518", "Stornoway",
995             "441877", "Callander",
996             "441561", "Laurencekirk",
997             "441955", "Wick",
998             "4412292", "Barrow\-in\-Furness",
999             "441570", "Lampeter",
1000             "441967", "Strontian",
1001             "4414373", "Clynderwen\ \(Clunderwen\)",
1002             "4415079", "Alford\ \(Lincs\)",
1003             "44114709", "Sheffield",
1004             "441766", "Porthmadog",
1005             "4419643", "Patrington",
1006             "441837", "Okehampton",
1007             "441343", "Elgin",
1008             "441689", "Orpington",
1009             "441392", "Exeter",
1010             "441633", "Newport",
1011             "441380", "Devizes",
1012             "4413881", "Bishop\ Auckland\/Stanhope\ \(Eastgate\)",
1013             "441646", "Milford\ Haven",
1014             "441593", "Lybster",
1015             "441542", "Keith",
1016             "442867", "Lisnaskea",
1017             "4419647", "Patrington",
1018             "4414238", "Harrogate",
1019             "441807", "Ballindalloch",
1020             "441549", "Lairg",
1021             "441603", "Norwich",
1022             "441690", "Betws\-y\-Coed",
1023             "4414377", "Haverfordwest",
1024             "441748", "Richmond",
1025             "441306", "Dorking",
1026             "441586", "Campbeltown",
1027             "441530", "Coalville",
1028             "4414231", "Harrogate\/Boroughbridge",
1029             "442826", "Northern\ Ireland",
1030             "441884", "Tiverton",
1031             "441452", "Gloucester",
1032             "441745", "Rhyl",
1033             "4414342", "Bellingham",
1034             "441474", "Gravesend",
1035             "441750", "Selkirk",
1036             "441491", "Henley\-on\-Thames",
1037             "441620", "North\ Berwick",
1038             "441405", "Goole",
1039             "441206", "Colchester",
1040             "442896", "Belfast",
1041             "441329", "Fareham",
1042             "441862", "Tain",
1043             "4415070", "Louth\/Alford\ \(Lincs\)\/Spilsby\ \(Horncastle\)",
1044             "441299", "Bewdley",
1045             "441408", "Golspie",
1046             "441664", "Melton\ Mowbray",
1047             "441322", "Dartford",
1048             "441141", "Sheffield",
1049             "441869", "Bicester",
1050             "441243", "Chichester",
1051             "441292", "Ayr",
1052             "441954", "Madingley",
1053             "4414308", "Market\ Weighton",
1054             "4419467", "Gosforth",
1055             "4420", "London",
1056             "441972", "Glenborrodale",
1057             "441435", "Heathfield",
1058             "442840", "Banbridge",
1059             "441236", "Coatbridge",
1060             "441280", "Buckingham",
1061             "442883", "Northern\ Ireland",
1062             "441438", "Stevenage",
1063             "4414301", "North\ Cave\/Market\ Weighton",
1064             "4419642", "Hornsea",
1065             "441887", "Aberfeldy",
1066             "441453", "Dursley",
1067             "441349", "Dingwall",
1068             "441795", "Sittingbourne",
1069             "4414372", "Clynderwen\ \(Clunderwen\)",
1070             "441683", "Moffat",
1071             "441477", "Holmes\ Chapel",
1072             "441639", "Neath",
1073             "441599", "Kyle",
1074             "441798", "Pulborough",
1075             "441330", "Banchory",
1076             "4414347", "Hexham",
1077             "441386", "Evesham",
1078             "4412293", "Millom",
1079             "441506", "Bathgate",
1080             "441592", "Kirkcaldy",
1081             "441543", "Cannock",
1082             "441609", "Northallerton",
1083             "4418510", "Great\ Bernera\/Stornoway",
1084             "4414309", "Market\ Weighton",
1085             "441223", "Cambridge",
1086             "441342", "East\ Grinstead",
1087             "441834", "Narberth",
1088             "441300", "Cerne\ Abbas",
1089             "442820", "Ballycastle",
1090             "441580", "Cranbrook",
1091             "441536", "Kettering",
1092             "441968", "Penicuik",
1093             "441626", "Newton\ Abbot",
1094             "441756", "Skipton",
1095             "442882", "Omagh",
1096             "441522", "Lincoln",
1097             "441323", "Eastbourne",
1098             "441242", "Cheltenham",
1099             "441293", "Crawley",
1100             "442890", "Belfast",
1101             "441957", "Mid\ Yell",
1102             "441200", "Clitheroe",
1103             "441655", "Maybole",
1104             "441875", "Tranent",
1105             "441485", "Hunstanton",
1106             "442846", "Northern\ Ireland",
1107             "44116", "Leicester",
1108             "441249", "Chippenham",
1109             "441863", "Ardgay",
1110             "44287", "Northern\ Ireland",
1111             "441725", "Rockbourne",
1112             "441667", "Nairn",
1113             "441878", "Lochboisdale",
1114             "442889", "Fivemiletown",
1115             "441488", "Hungerford",
1116             "441529", "Sleaford",
1117             "4414239", "Boroughbridge",
1118             "441286", "Caernarfon",
1119             "441728", "Saxmundham",
1120             "441250", "Blairgowrie",
1121             "441595", "Lerwick\,\ Foula\ \&\ Fair\ Isle",
1122             "4413398", "Aboyne",
1123             "441501", "Harthill",
1124             "4416861", "Newtown\/Llanidloes",
1125             "441638", "Newmarket",
1126             "4415076", "Louth",
1127             "442877", "Limavady",
1128             "441381", "Fortrose",
1129             "441348", "Fishguard",
1130             "441706", "Rochdale",
1131             "441598", "Lynton",
1132             "441984", "Watchet\ \(Williton\)",
1133             "441635", "Newbury",
1134             "4416868", "Newtown",
1135             "4413391", "Aboyne\/Ballater",
1136             "441799", "Saffron\ Walden",
1137             "441937", "Wetherby",
1138             "441743", "Shrewsbury",
1139             "441792", "Swansea",
1140             "441608", "Chipping\ Norton",
1141             "441531", "Ledbury",
1142             "441464", "Insch",
1143             "4415242", "Hornby",
1144             "441780", "Stamford",
1145             "441736", "Penzance",
1146             "441691", "Oswestry",
1147             "441420", "Alton",
1148             "441969", "Leyburn",
1149             "441722", "Salisbury",
1150             "441556", "Castle\ Douglas",
1151             "441482", "Kingston\-upon\-Hull",
1152             "441854", "Ullapool",
1153             "441674", "Montrose",
1154             "441652", "Brigg",
1155             "441872", "Truro",
1156             "441621", "Maldon",
1157             "441403", "Horsham",
1158             "4418479", "Tongue",
1159             "441751", "Pickering",
1160             "441490", "Corwen",
1161             "441446", "Barry",
1162             "442885", "Ballygawley",
1163             "441350", "Dunkeld",
1164             "441525", "Leighton\ Buzzard",
1165             "4419753", "Strathdon",
1166             "441248", "Bangor\ \(Gwynedd\)",
1167             "441489", "Bishops\ Waltham",
1168             "441528", "Laggan",
1169             "442888", "Northern\ Ireland",
1170             "442841", "Rostrevor",
1171             "441433", "Hathersage",
1172             "4418907", "Ayton",
1173             "4418514", "Great\ Bernera",
1174             "441659", "Sanquhar",
1175             "441879", "Scarinish",
1176             "441962", "Winchester",
1177             "441729", "Settle",
1178             "4418515", "Stornoway",
1179             "441140", "Sheffield",
1180             "441245", "Chelmsford",
1181             "4418478", "Thurso",
1182             "441641", "Strathy",
1183             "441688", "Isle\ of\ Mull\ \-\ Tobermory",
1184             "441458", "Glastonbury",
1185             "4415074", "Alford\ \(Lincs\)",
1186             "441256", "Basingstoke",
1187             "4415075", "Spilsby\ \(Horncastle\)",
1188             "441934", "Weston\-super\-Mare",
1189             "441685", "Merthyr\ Tydfil",
1190             "4418471", "Thurso\/Tongue",
1191             "441793", "Swindon",
1192             "441455", "Hinckley",
1193             "441700", "Rothesay",
1194             "441467", "Inverurie",
1195             "442821", "Martinstown",
1196             "441548", "Kingsbridge",
1197             "441581", "New\ Luce",
1198             "44239", "Portsmouth",
1199             "441301", "Arrochar",
1200             "441749", "Shepton\ Mallet",
1201             "441395", "Budleigh\ Salterton",
1202             "441987", "Ebbsfleet",
1203             "441225", "Bath",
1204             "441904", "York",
1205             "441545", "Llanarth",
1206             "441730", "Petersfield",
1207             "441786", "Stirling",
1208             "4416974", "Raughton\ Head",
1209             "441398", "Dulverton",
1210             "441228", "Carlisle",
1211             "441432", "Hereford",
1212             "442891", "Bangor\ \(Co\.\ Down\)",
1213             "4416869", "Newtown",
1214             "441295", "Banbury",
1215             "441963", "Wincanton",
1216             "441550", "Llandovery",
1217             "441325", "Darlington",
1218             "4417684", "Pooley\ Bridge",
1219             "4413399", "Ballater",
1220             "44114707", "Sheffield",
1221             "441978", "Wrexham",
1222             "4418902", "Coldstream",
1223             "441496", "Port\ Ellen",
1224             "441298", "Buxton",
1225             "441409", "Holsworthy",
1226             "441328", "Fakenham",
1227             "441356", "Brechin",
1228             "441440", "Haverhill",
1229             "441723", "Scarborough",
1230             "441865", "Oxford",
1231             "441146", "Sheffield",
1232             "441483", "Guildford",
1233             "442838", "Portadown",
1234             "441439", "Helmsley",
1235             "441677", "Bedale",
1236             "4418516", "Great\ Bernera",
1237             "441857", "Sanday",
1238             "44286", "Northern\ Ireland",
1239             "44117", "Bristol",
1240             "441873", "Abergavenny",
1241             "441653", "Malton",
1242             "441803", "Torquay",
1243             "4414236", "Harrogate",
1244             "441938", "Welshpool",
1245             "441882", "Kinloch\ Rannoch",
1246             "441454", "Chipping\ Sodbury",
1247             "441684", "Malvern",
1248             "441935", "Yeovil",
1249             "441472", "Grimsby",
1250             "4419752", "Alford\ \(Aberdeen\)",
1251             "44113", "Leeds",
1252             "441224", "Aberdeen",
1253             "441889", "Rugeley",
1254             "441833", "Barnard\ Castle",
1255             "441347", "Easingwold",
1256             "441394", "Felixstowe",
1257             "441637", "Newquay",
1258             "441479", "Grantown\-on\-Spey",
1259             "441908", "Milton\ Keynes",
1260             "441260", "Congleton",
1261             "441271", "Barnstaple",
1262             "441597", "Llandrindod\ Wells",
1263             "441905", "Worcester",
1264             "441544", "Kington",
1265             "441324", "Falkirk",
1266             "441294", "Ardrossan",
1267             "441669", "Rothbury",
1268             "441952", "Telford",
1269             "441974", "Llanon",
1270             "4414306", "Market\ Weighton",
1271             "441911", "Tyneside\/Durham\/Sunderland",
1272             "441360", "Killearn",
1273             "441371", "Great\ Dunmow",
1274             "442887", "Dungannon",
1275             "441527", "Redditch",
1276             "441770", "Isle\ of\ Arran",
1277             "441761", "Temple\ Cloud",
1278             "4416860", "Newtown\/Llanidloes",
1279             "441959", "Westerham",
1280             "441566", "Launceston",
1281             "441864", "Abington\ \(Crawford\)",
1282             "4413390", "Aboyne\/Ballater",
1283             "4414235", "Harrogate",
1284             "441988", "Wigtown",
1285             "441896", "Galashiels",
1286             "441594", "Lydney",
1287             "441809", "Tomdoun",
1288             "4414234", "Boroughbridge",
1289             "441547", "Knighton",
1290             "441227", "Canterbury",
1291             "441344", "Bracknell",
1292             "441832", "Clopton",
1293             "441397", "Fort\ William",
1294             "441985", "Warminster",
1295             "441634", "Medway",
1296             "4413885", "Stanhope\ \(Eastgate\)",
1297             "441465", "Girvan",
1298             "441883", "Caterham",
1299             "4418903", "Coldstream",
1300             "44118", "Reading",
1301             "441457", "Glossop",
1302             "441687", "Mallaig",
1303             "441473", "Ipswich",
1304             "441604", "Northampton",
1305             "4419757", "Strathdon",
1306             "441840", "Camelford",
1307             "4414304", "North\ Cave",
1308             "441855", "Ballachulish",
1309             "441675", "Coleshill",
1310             "4414305", "North\ Cave",
1311             "441663", "New\ Mills",
1312             "441858", "Market\ Harborough",
1313             "441678", "Bala",
1314             "442837", "Armagh",
1315             "441366", "Downham\ Market",
1316             "442884", "Northern\ Ireland",
1317             "441776", "Stranraer",
1318             "441524", "Lancaster",
1319             "441327", "Daventry",
1320             "441244", "Chester",
1321             "4418470", "Thurso\/Tongue",
1322             "441297", "Axminster",
1323             "441571", "Lochinver",
1324             "441953", "Wymondham",
1325             "441977", "Pontefract",
1326             "441560", "Moscow",
1327             "441302", "Doncaster",
1328             "441582", "Luton",
1329             "441258", "Blandford",
1330             "442822", "Northern\ Ireland",
1331             "441340", "Craigellachie\ \(Aberlour\)",
1332             "4419759", "Alford\ \(Aberdeen\)",
1333             "441456", "Glenurquhart",
1334             "441630", "Market\ Drayton",
1335             "441590", "Lymington",
1336             "441255", "Clacton\-on\-Sea",
1337             "441267", "Carmarthen",
1338             "441383", "Dunfermline",
1339             "441503", "Looe",
1340             "441844", "Thame",
1341             "441332", "Derby",
1342             "441642", "Middlesbrough",
1343             "441785", "Stafford",
1344             "44241", "Coventry",
1345             "441546", "Lochgilphead",
1346             "441600", "Monmouth",
1347             "441425", "Ringwood",
1348             "441226", "Barnsley",
1349             "4418473", "Thurso",
1350             "441788", "Rugby",
1351             "441309", "Forres",
1352             "441428", "Haslemere",
1353             "442829", "Kilrea",
1354             "441827", "Tamworth",
1355             "441623", "Mansfield",
1356             "441495", "Pontypool",
1357             "441753", "Slough",
1358             "441777", "Retford",
1359             "441326", "Falmouth",
1360             "4414345", "Haltwhistle",
1361             "441296", "Aylesbury",
1362             "441209", "Redruth",
1363             "4414344", "Bellingham",
1364             "442899", "Northern\ Ireland",
1365             "441202", "Bournemouth",
1366             "442892", "Lisburn",
1367             "4414376", "Haverfordwest",
1368             "441431", "Helmsdale",
1369             "442843", "Newcastle\ \(Co\.\ Down\)",
1370             "441358", "Ellon",
1371             "441564", "Lapworth",
1372             "441145", "Sheffield",
1373             "441866", "Kilchrenan",
1374             "4418900", "Coldstream\/Ayton",
1375             "4419646", "Patrington",
1376             "441355", "East\ Kilbride",
1377             "441520", "Lochcarron",
1378             "442880", "Carrickmore",
1379             "441239", "Cardigan",
1380             "441367", "Faringdon",
1381             "441283", "Burton\-on\-Trent",
1382             "441450", "Hawick",
1383             "441346", "Fraserburgh",
1384             "441680", "Isle\ of\ Mull\ \-\ Craignure",
1385             "441636", "Newark\-on\-Trent",
1386             "441333", "Peat\ Inn\ \(Leven\ \(Fife\)\)",
1387             "441389", "Dumbarton",
1388             "441692", "North\ Walsham",
1389             "441643", "Minehead",
1390             "441509", "Loughborough",
1391             "441708", "Romford",
1392             "441540", "Kingussie",
1393             "441606", "Northwich",
1394             "441264", "Andover",
1395             "4416863", "Llanidloes",
1396             "441382", "Dundee",
1397             "441502", "Lowestoft",
1398             "441303", "Folkestone",
1399             "441583", "Carradale",
1400             "441539", "Kendal",
1401             "442823", "Northern\ Ireland",
1402             "4413393", "Aboyne",
1403             "441738", "Perth",
1404             "441759", "Pocklington",
1405             "4419751", "Alford\ \(Aberdeen\)\/Strathdon",
1406             "441364", "Ashburton",
1407             "441558", "Llandeilo",
1408             "441282", "Burnley",
1409             "441629", "Matlock",
1410             "4419758", "Strathdon",
1411             "442893", "Ballyclare",
1412             "442842", "Kircubbin",
1413             "4414346", "Hexham",
1414             "441970", "Aberystwyth",
1415             "441567", "Killin",
1416             "441320", "Fort\ Augustus",
1417             "441555", "Lanark",
1418             "441290", "Cumnock",
1419             "4419644", "Patrington",
1420             "4414375", "Clynderwen\ \(Clunderwen\)",
1421             "441246", "Chesterfield",
1422             "441721", "Peebles",
1423             "441871", "Castlebay",
1424             "441651", "Oldmeldrum",
1425             "4419645", "Hornsea",
1426             "4414374", "Clynderwen\ \(Clunderwen\)",
1427             "442849", "Northern\ Ireland",
1428             "441481", "Guernsey",
1429             "441233", "Ashford\ \(Kent\)",
1430             "441824", "Ruthin",
1431             "441289", "Berwick\-upon\-Tweed",
1432             "441622", "Maidstone",
1433             "441752", "Plymouth",
1434             "442886", "Cookstown",
1435             "442830", "Newry",
1436             "441445", "Gairloch",
1437             "441526", "Martin",
1438             "441704", "Southport",
1439             "4418901", "Coldstream\/Ayton",
1440             "441986", "Bungay",
1441             "4412296", "Barrow\-in\-Furness",
1442             "44114705", "Sheffield",
1443             "441427", "Gainsborough",
1444             "442311", "Southampton",
1445             "441787", "Sudbury",
1446             "441949", "Whatton",
1447             "441895", "Uxbridge",
1448             "4418908", "Coldstream",
1449             "442870", "Coleraine",
1450             "441942", "Wigan",
1451             "441993", "Witney",
1452             "441257", "Coppull",
1453             "441900", "Workington",
1454             "441273", "Brighton",
1455             "441268", "Basildon",
1456             "441466", "Huntly",
1457             "441923", "Watford",
1458             "441913", "Durham",
1459             "441357", "Strathaven",
1460             "441373", "Frome",
1461             "4418472", "Thurso",
1462             "441572", "Oakham",
1463             "441368", "Dunbar",
1464             "441554", "Llanelli",
1465             "441676", "Meriden",
1466             "441856", "Orkney",
1467             "44114701", "Sheffield",
1468             "441778", "Bourne",
1469             "4413397", "Ballater",
1470             "441579", "Liskeard",
1471             "441828", "Coupar\ Angus",
1472             "441444", "Haywards\ Heath",
1473             "441775", "Spalding",
1474             "4416867", "Llanidloes",
1475             "441497", "Hay\-on\-Wye",
1476             "44281", "Northern\ Ireland",
1477             "441763", "Royston",
1478             "441825", "Uckfield",
1479             "4412294", "Barrow\-in\-Furness",
1480             "441980", "Amesbury",
1481             "44161", "Manchester",
1482             "4412295", "Barrow\-in\-Furness",
1483             "441737", "Redhill",
1484             "441943", "Guiseley",
1485             "441992", "Lea\ Valley",
1486             "441254", "Blackburn",
1487             "441424", "Hastings",
1488             "4419750", "Alford\ \(Aberdeen\)\/Strathdon",
1489             "441279", "Bishops\ Stortford",
1490             "441784", "Staines",
1491             "441845", "Thirsk",
1492             "441460", "Chard",
1493             "441707", "Welwyn\ Garden\ City",
1494             "441471", "Isle\ of\ Skye\ \-\ Broadford",
1495             "441848", "Thornhill",
1496             "4418909", "Ayton",
1497             "441379", "Diss",
1498             "441494", "High\ Wycombe",
1499             "4413392", "Aboyne",
1500             "441929", "Wareham",
1501             "441919", "Durham",
1502             "441670", "Morpeth",
1503             "4416862", "Llanidloes",
1504             "441661", "Prudhoe",
1505             "441573", "Kelso",
1506             "441557", "Kirkcudbright",
1507             "441144", "Sheffield",
1508             "4418477", "Tongue",
1509             "441565", "Knutsford",
1510             "441951", "Colonsay",
1511             "441922", "Walsall",
1512             "441769", "South\ Molton",
1513             "441912", "Tyneside",
1514             "441354", "Chatteris",
1515             "441568", "Leominster",
1516             "441372", "Esher",};
1517              
1518             sub new {
1519 477     477 1 1130 my $class = shift;
1520 477         823 my $number = shift;
1521 477         2991 $number =~ s/(^\+44|\D)//g;
1522 477         2938 my $self = bless({ country_code => '44', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1523 477 100       2559 return $self if ($self->is_valid());
1524 114         494 $number =~ s/^(?:0)//;
1525 114         1252 $self = bless({ country_code => '44', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1526 114 100       457 return $self->is_valid() ? $self : undef;
1527             }
1528             1;