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