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   11535 use base qw(Number::Phone::StubCountry);
  19         62  
  19         2043  
21              
22 19     19   150 use strict;
  19         169  
  19         416  
23 19     19   201 use warnings;
  19         48  
  19         480  
24 19     19   112 use utf8;
  19         44  
  19         121  
25             our $VERSION = 1.20230614174403;
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             (?:
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-579]
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} = {"441588", "Bishops\ Castle",
705             "441565", "Knutsford",
706             "441554", "Llanelli",
707             "441770", "Isle\ of\ Arran",
708             "4419646", "Patrington",
709             "4414234", "Boroughbridge",
710             "441765", "Ripon",
711             "441788", "Rugby",
712             "4414371", "Haverfordwest\/Clynderwen\ \(Clunderwen\)",
713             "441754", "Skegness",
714             "441397", "Fort\ William",
715             "441570", "Lampeter",
716             "441463", "Inverness",
717             "441209", "Redruth",
718             "4413885", "Stanhope\ \(Eastgate\)",
719             "441470", "Isle\ of\ Skye\ \-\ Edinbane",
720             "441678", "Bala",
721             "441563", "Kilmarnock",
722             "441488", "Hungerford",
723             "441244", "Chester",
724             "4419467", "Gosforth",
725             "441465", "Girvan",
726             "441680", "Isle\ of\ Mull\ \-\ Craignure",
727             "441262", "Bridlington",
728             "441389", "Dumbarton",
729             "441454", "Chipping\ Sodbury",
730             "441986", "Bungay",
731             "441763", "Royston",
732             "44113", "Leeds",
733             "441793", "Swindon",
734             "441495", "Pontypool",
735             "441292", "Ayr",
736             "4419757", "Strathdon",
737             "441937", "Wetherby",
738             "4414372", "Clynderwen\ \(Clunderwen\)",
739             "441406", "Holbeach",
740             "441233", "Ashford\ \(Kent\)",
741             "4415073", "Louth",
742             "441593", "Lybster",
743             "441908", "Milton\ Keynes",
744             "441732", "Sevenoaks",
745             "441424", "Hastings",
746             "4418909", "Ayton",
747             "441367", "Faringdon",
748             "441493", "Great\ Yarmouth",
749             "441506", "Bathgate",
750             "441795", "Sittingbourne",
751             "442847", "Northern\ Ireland",
752             "4416974", "Raughton\ Head",
753             "441524", "Lancaster",
754             "4413393", "Aboyne",
755             "442871", "Londonderry",
756             "44283", "Northern\ Ireland",
757             "441889", "Rugeley",
758             "441706", "Rochdale",
759             "441595", "Lerwick\,\ Foula\ \&\ Fair\ Isle",
760             "441301", "Arrochar",
761             "441235", "Abingdon",
762             "441724", "Scunthorpe",
763             "441432", "Hereford",
764             "441989", "Ross\-on\-Wye",
765             "441492", "Colwyn\ Bay",
766             "441295", "Banbury",
767             "441535", "Keighley",
768             "4413882", "Stanhope\ \(Eastgate\)",
769             "441386", "Evesham",
770             "4418474", "Thurso",
771             "441224", "Aberdeen",
772             "441581", "New\ Luce",
773             "4415070", "Louth\/Alford\ \(Lincs\)\/Spilsby\ \(Horncastle\)",
774             "441433", "Hathersage",
775             "441206", "Colchester",
776             "44131", "Edinburgh",
777             "441481", "Guernsey",
778             "4413390", "Aboyne\/Ballater",
779             "441792", "Swansea",
780             "441837", "Okehampton",
781             "441647", "Moretonhampstead",
782             "441808", "Tomatin",
783             "441293", "Crawley",
784             "441997", "Strathpeffer",
785             "441592", "Kirkcaldy",
786             "441435", "Heathfield",
787             "441733", "Peterborough",
788             "441671", "Newton\ Stewart",
789             "4413873", "Langholm",
790             "4418907", "Ayton",
791             "44116", "Leicester",
792             "4413881", "Bishop\ Auckland\/Stanhope\ \(Eastgate\)",
793             "441562", "Kidderminster",
794             "4414344", "Bellingham",
795             "442827", "Ballymoney",
796             "441886", "Bromyard\ \(Knightwick\/Leigh\ Sinton\)",
797             "44239", "Portsmouth",
798             "441709", "Rotherham",
799             "4417683", "Appleby",
800             "441544", "Kington",
801             "441263", "Cromer",
802             "441967", "Strontian",
803             "441744", "St\ Helens",
804             "441509", "Loughborough",
805             "441270", "Crewe",
806             "441337", "Ladybank",
807             "441308", "Bridport",
808             "441409", "Holsworthy",
809             "44286", "Northern\ Ireland",
810             "4419759", "Alford\ \(Aberdeen\)",
811             "442880", "Carrickmore",
812             "441254", "Blackburn",
813             "4416864", "Llanidloes",
814             "441462", "Hitchin",
815             "4414375", "Clynderwen\ \(Clunderwen\)",
816             "441444", "Haywards\ Heath",
817             "441288", "Bude",
818             "4414374", "Clynderwen\ \(Clunderwen\)",
819             "441547", "Knighton",
820             "4416865", "Newtown",
821             "442824", "Northern\ Ireland",
822             "441376", "Braintree",
823             "441843", "Thanet",
824             "441771", "Maud",
825             "441633", "Newport",
826             "441322", "Dartford",
827             "442895", "Belfast",
828             "441692", "North\ Walsham",
829             "441747", "Shaftesbury",
830             "441955", "Wick",
831             "441571", "Lochinver",
832             "441942", "Wigan",
833             "4412290", "Barrow\-in\-Furness\/Millom",
834             "4414231", "Harrogate\/Boroughbridge",
835             "4419648", "Hornsea",
836             "441845", "Thirsk",
837             "441635", "Newbury",
838             "441852", "Kilmelford",
839             "441471", "Isle\ of\ Skye\ \-\ Broadford",
840             "441334", "St\ Andrews",
841             "441681", "Isle\ of\ Mull\ \-\ Fionnphort",
842             "441257", "Coppull",
843             "4414300", "North\ Cave\/Market\ Weighton",
844             "4414345", "Haltwhistle",
845             "441953", "Wymondham",
846             "442893", "Ballyclare",
847             "441876", "Lochmaddy",
848             "441343", "Elgin",
849             "441822", "Tavistock",
850             "441227", "Canterbury",
851             "441923", "Watford",
852             "4414232", "Harrogate",
853             "441994", "St\ Clears",
854             "441352", "Mold",
855             "442888", "Northern\ Ireland",
856             "4418510", "Great\ Bernera\/Stornoway",
857             "441280", "Buckingham",
858             "441834", "Narberth",
859             "4418475", "Thurso",
860             "441644", "New\ Galloway",
861             "442870", "Coleraine",
862             "441925", "Warrington",
863             "441278", "Bridgwater",
864             "441300", "Cerne\ Abbas",
865             "441609", "Northallerton",
866             "441912", "Tyneside",
867             "441353", "Ely",
868             "441780", "Stamford",
869             "4418471", "Thurso\/Tongue",
870             "441825", "Uckfield",
871             "44241", "Coventry",
872             "441578", "Lauder",
873             "441663", "New\ Mills",
874             "441580", "Cranbrook",
875             "441427", "Gainsborough",
876             "441778", "Bourne",
877             "4414342", "Bellingham",
878             "441913", "Durham",
879             "441934", "Weston\-super\-Mare",
880             "4418513", "Stornoway",
881             "441688", "Isle\ of\ Mull\ \-\ Tobermory",
882             "441480", "Huntingdon",
883             "441665", "Alnwick",
884             "441527", "Redditch",
885             "442844", "Downpatrick",
886             "441654", "Machynlleth",
887             "4416862", "Llanidloes",
888             "441364", "Ashburton",
889             "441823", "Taunton",
890             "441342", "East\ Grinstead",
891             "441355", "East\ Kilbride",
892             "441915", "Sunderland",
893             "441727", "St\ Albans",
894             "441670", "Morpeth",
895             "441478", "Isle\ of\ Skye\ \-\ Portree",
896             "441922", "Walsall",
897             "441379", "Diss",
898             "4418472", "Thurso",
899             "441606", "Northwich",
900             "441325", "Darlington",
901             "441900", "Workington",
902             "441624", "Isle\ of\ Man",
903             "441557", "Kirkcudbright",
904             "441952", "Telford",
905             "4412293", "Millom",
906             "441394", "Felixstowe",
907             "441945", "Wisbech",
908             "442892", "Lisburn",
909             "4414341", "Bellingham\/Haltwhistle\/Hexham",
910             "441695", "Skelmersdale",
911             "441757", "Selby",
912             "441271", "Barnstaple",
913             "4416861", "Newtown\/Llanidloes",
914             "441864", "Abington\ \(Crawford\)",
915             "441323", "Eastbourne",
916             "441842", "Thetford",
917             "441855", "Ballachulish",
918             "4414235", "Harrogate",
919             "4414303", "North\ Cave",
920             "442881", "Newtownstewart",
921             "441457", "Glossop",
922             "441943", "Guiseley",
923             "441879", "Scarinish",
924             "441294", "Ardrossan",
925             "4419750", "Alford\ \(Aberdeen\)\/Strathdon",
926             "441534", "Jersey",
927             "4414348", "Hexham",
928             "441980", "Amesbury",
929             "441225", "Bath",
930             "441422", "Halifax",
931             "44161", "Manchester",
932             "441978", "Wrexham",
933             "441476", "Grantham",
934             "4419645", "Hornsea",
935             "442867", "Lisnaskea",
936             "441522", "Lincoln",
937             "44291", "Cardiff",
938             "441576", "Lockerbie",
939             "441347", "Easingwold",
940             "441371", "Great\ Dunmow",
941             "441722", "Salisbury",
942             "4416868", "Newtown",
943             "441223", "Cambridge",
944             "441776", "Stranraer",
945             "44115", "Nottingham",
946             "441700", "Rothesay",
947             "441545", "Llanarth",
948             "4413399", "Ballater",
949             "4418478", "Thurso",
950             "441957", "Mid\ Yell",
951             "441443", "Pontypridd",
952             "4417687", "Keswick",
953             "441253", "Blackpool",
954             "442897", "Saintfield",
955             "441745", "Rhyl",
956             "441752", "Plymouth",
957             "4418903", "Coldstream",
958             "441543", "Cannock",
959             "441608", "Chipping\ Norton",
960             "441400", "Honington",
961             "441279", "Bishops\ Stortford",
962             "4415079", "Alford\ \(Lincs\)",
963             "441637", "Newquay",
964             "441743", "Shrewsbury",
965             "441871", "Castlebay",
966             "442889", "Fivemiletown",
967             "441255", "Clacton\-on\-Sea",
968             "441242", "Cheltenham",
969             "441445", "Gairloch",
970             "441264", "Andover",
971             "441452", "Gloucester",
972             "441564", "Lapworth",
973             "441971", "Scourie",
974             "441555", "Lanark",
975             "441779", "Peterhead",
976             "441542", "Keith",
977             "44114", "Sheffield",
978             "441327", "Daventry",
979             "441697", "Brampton",
980             "4418900", "Coldstream\/Ayton",
981             "441764", "Crieff",
982             "441579", "Liskeard",
983             "441947", "Whitby",
984             "441453", "Dursley",
985             "441243", "Chichester",
986             "441857", "Sanday",
987             "442837", "Armagh",
988             "441479", "Grantown\-on\-Spey",
989             "441553", "Kings\ Lynn",
990             "441200", "Clitheroe",
991             "441252", "Aldershot",
992             "4419642", "Hornsea",
993             "441464", "Insch",
994             "441245", "Chelmsford",
995             "441442", "Hemel\ Hempstead",
996             "441455", "Hinckley",
997             "441753", "Slough",
998             "441380", "Devizes",
999             "441689", "Orpington",
1000             "441494", "High\ Wycombe",
1001             "4419753", "Strathdon",
1002             "4414238", "Harrogate",
1003             "4415077", "Louth",
1004             "442886", "Cookstown",
1005             "441827", "Tamworth",
1006             "441276", "Camberley",
1007             "441723", "Scarborough",
1008             "441425", "Ringwood",
1009             "44281", "Northern\ Ireland",
1010             "441878", "Lochboisdale",
1011             "441357", "Strathaven",
1012             "441667", "Nairn",
1013             "441794", "Romsey",
1014             "44292", "Cardiff",
1015             "4414376", "Haverfordwest",
1016             "441525", "Leighton\ Buzzard",
1017             "4419641", "Hornsea\/Patrington",
1018             "4413397", "Ballater",
1019             "441594", "Lydney",
1020             "441234", "Bedford",
1021             "441880", "Tarbert",
1022             "441725", "Rockbourne",
1023             "441917", "Sunderland",
1024             "441497", "Hay\-on\-Wye",
1025             "441363", "Crediton",
1026             "441824", "Ruthin",
1027             "442843", "Newcastle\ \(Co\.\ Down\)",
1028             "441653", "Malton",
1029             "441806", "Shetland",
1030             "441789", "Stratford\-upon\-Avon",
1031             "441981", "Wormbridge",
1032             "441895", "Uxbridge",
1033             "4416866", "Newtown",
1034             "441935", "Yeovil",
1035             "441797", "Rye",
1036             "441664", "Melton\ Mowbray",
1037             "4414346", "Hexham",
1038             "441832", "Clopton",
1039             "441642", "Middlesbrough",
1040             "442845", "Northern\ Ireland",
1041             "441655", "Maybole",
1042             "441388", "Bishop\ Auckland",
1043             "441992", "Lea\ Valley",
1044             "441489", "Bishops\ Waltham",
1045             "441354", "Chatteris",
1046             "441237", "Bideford",
1047             "441597", "Llandrindod\ Wells",
1048             "441933", "Wellingborough",
1049             "441914", "Tyneside",
1050             "4418517", "Stornoway",
1051             "441208", "Bodmin",
1052             "4420", "London",
1053             "441909", "Worksop",
1054             "441863", "Ardgay",
1055             "441324", "Falkirk",
1056             "44121", "Birmingham",
1057             "441567", "Killin",
1058             "4412297", "Millom",
1059             "441306", "Dorking",
1060             "441625", "Macclesfield",
1061             "442822", "Northern\ Ireland",
1062             "441944", "West\ Heslerton",
1063             "441501", "Harthill",
1064             "441395", "Budleigh\ Salterton",
1065             "441962", "Winchester",
1066             "441767", "Sandy",
1067             "441694", "Church\ Stretton",
1068             "441286", "Caernarfon",
1069             "4414307", "Market\ Weighton",
1070             "441623", "Mansfield",
1071             "441332", "Derby",
1072             "441888", "Turriff",
1073             "441865", "Oxford",
1074             "441854", "Ullapool",
1075             "441870", "Isle\ of\ Benbecula",
1076             "441467", "Inverurie",
1077             "4418476", "Tongue",
1078             "441333", "Peat\ Inn\ \(Leven\ \(Fife\)\)",
1079             "441622", "Maidstone",
1080             "44141", "Glasgow",
1081             "442825", "Ballymena",
1082             "441970", "Aberystwyth",
1083             "441676", "Meriden",
1084             "442894", "Antrim",
1085             "441954", "Madingley",
1086             "441392", "Exeter",
1087             "441988", "Wigtown",
1088             "4418519", "Great\ Bernera",
1089             "441862", "Tain",
1090             "441844", "Thame",
1091             "441634", "Medway",
1092             "441586", "Campbeltown",
1093             "442823", "Northern\ Ireland",
1094             "441335", "Ashbourne",
1095             "441963", "Wincanton",
1096             "441809", "Tomdoun",
1097             "44151", "Liverpool",
1098             "441786", "Stirling",
1099             "441267", "Carmarthen",
1100             "441381", "Fortrose",
1101             "4414378", "Haverfordwest",
1102             "441508", "Brooke",
1103             "441833", "Barnard\ Castle",
1104             "4415242", "Hornby",
1105             "441643", "Minehead",
1106             "4414309", "Market\ Weighton",
1107             "441993", "Witney",
1108             "441297", "Axminster",
1109             "441708", "Romford",
1110             "441932", "Weybridge",
1111             "441892", "Tunbridge\ Wells",
1112             "441737", "Redhill",
1113             "4414236", "Harrogate",
1114             "441362", "Dereham",
1115             "4419644", "Patrington",
1116             "441289", "Berwick\-upon\-Tweed",
1117             "441995", "Garstang",
1118             "441344", "Bracknell",
1119             "441835", "St\ Boswells",
1120             "441652", "Brigg",
1121             "442842", "Kircubbin",
1122             "4412299", "Millom",
1123             "441924", "Wakefield",
1124             "441408", "Golspie",
1125             "441600", "Monmouth",
1126             "441309", "Forres",
1127             "442879", "Magherafelt",
1128             "441748", "Richmond",
1129             "441548", "Kingsbridge",
1130             "4413394", "Ballater",
1131             "4416973", "Wigton",
1132             "441603", "Norwich",
1133             "441856", "Orkney",
1134             "4418515", "Stornoway",
1135             "4418470", "Thurso\/Tongue",
1136             "441284", "Bury\ St\ Edmunds",
1137             "441830", "Kirkwhelpington",
1138             "441349", "Dingwall",
1139             "441258", "Blandford",
1140             "441946", "Whitehaven",
1141             "4415074", "Alford\ \(Lincs\)",
1142             "441721", "Peebles",
1143             "441929", "Wareham",
1144             "441304", "Dover",
1145             "441372", "Esher",
1146             "441326", "Falmouth",
1147             "442820", "Ballycastle",
1148             "4416860", "Newtown\/Llanidloes",
1149             "441228", "Carlisle",
1150             "441916", "Tyneside",
1151             "442899", "Northern\ Ireland",
1152             "4412295", "Barrow\-in\-Furness",
1153             "441356", "Brechin",
1154             "441959", "Westerham",
1155             "441666", "Malmesbury",
1156             "441751", "Pickering",
1157             "441277", "Brentwood",
1158             "441330", "Banchory",
1159             "441639", "Neath",
1160             "4414233", "Boroughbridge",
1161             "441872", "Truro",
1162             "4419758", "Strathdon",
1163             "44247", "Coventry",
1164             "4414305", "North\ Cave",
1165             "441451", "Stow\-on\-the\-Wold",
1166             "4414340", "Bellingham\/Haltwhistle\/Hexham",
1167             "442887", "Dungannon",
1168             "441241", "Arbroath",
1169             "441972", "Glenborrodale",
1170             "441428", "Haslemere",
1171             "441904", "York",
1172             "441620", "North\ Berwick",
1173             "441329", "Fareham",
1174             "4416863", "Llanidloes",
1175             "441926", "Warwick",
1176             "441777", "Retford",
1177             "4418512", "Stornoway",
1178             "442866", "Enniskillen",
1179             "441873", "Abergavenny",
1180             "441949", "Whatton",
1181             "4414301", "North\ Cave\/Market\ Weighton",
1182             "441346", "Fraserburgh",
1183             "441577", "Kinross",
1184             "441728", "Saxmundham",
1185             "441477", "Holmes\ Chapel",
1186             "441859", "Harris",
1187             "441528", "Laggan",
1188             "4417684", "Pooley\ Bridge",
1189             "4414343", "Haltwhistle",
1190             "441687", "Mallaig",
1191             "4414230", "Harrogate\/Boroughbridge",
1192             "441875", "Tranent",
1193             "4412291", "Barrow\-in\-Furness\/Millom",
1194             "441829", "Tarporley",
1195             "441758", "Pwllheli",
1196             "441784", "Staines",
1197             "4418511", "Great\ Bernera\/Stornoway",
1198             "442310", "Portsmouth",
1199             "441373", "Frome",
1200             "4414302", "North\ Cave",
1201             "4415396", "Sedbergh",
1202             "441558", "Llandeilo",
1203             "441636", "Newark\-on\-Trent",
1204             "441584", "Ludlow",
1205             "4418908", "Coldstream",
1206             "441669", "Rothbury",
1207             "441360", "Killearn",
1208             "441650", "Cemmaes\ Road",
1209             "442896", "Belfast",
1210             "442840", "Banbridge",
1211             "441458", "Glastonbury",
1212             "4418473", "Thurso",
1213             "441248", "Bangor\ \(Gwynedd\)",
1214             "441484", "Huddersfield",
1215             "441359", "Pakenham",
1216             "441919", "Durham",
1217             "441674", "Montrose",
1218             "4412292", "Barrow\-in\-Furness",
1219             "441375", "Grays\ Thurrock",
1220             "4413391", "Aboyne\/Ballater",
1221             "4419647", "Patrington",
1222             "441787", "Sudbury",
1223             "441982", "Builth\ Wells",
1224             "441499", "Inveraray",
1225             "441398", "Dulverton",
1226             "441628", "Maidenhead",
1227             "441420", "Alton",
1228             "441883", "Caterham",
1229             "441641", "Strathy",
1230             "441520", "Lochcarron",
1231             "441487", "Warboys",
1232             "441799", "Saffron\ Walden",
1233             "441720", "Isles\ of\ Scilly",
1234             "441885", "Pencombe",
1235             "4415071", "Louth\/Alford\ \(Lincs\)\/Spilsby\ \(Horncastle\)",
1236             "441599", "Kyle",
1237             "441239", "Cardigan",
1238             "441677", "Bedale",
1239             "4413392", "Aboyne",
1240             "441569", "Stonehaven",
1241             "441938", "Welshpool",
1242             "441702", "Southend\-on\-Sea",
1243             "441550", "Llandovery",
1244             "442821", "Martinstown",
1245             "441436", "Helensburgh",
1246             "441769", "South\ Molton",
1247             "441502", "Lowestoft",
1248             "4419756", "Strathdon",
1249             "441750", "Selkirk",
1250             "441383", "Dunfermline",
1251             "441205", "Boston",
1252             "4413880", "Bishop\ Auckland\/Stanhope\ \(Eastgate\)",
1253             "441474", "Gravesend",
1254             "44280", "Northern\ Ireland",
1255             "441736", "Penzance",
1256             "441469", "Killingholme",
1257             "441368", "Dunbar",
1258             "441450", "Hawick",
1259             "4415072", "Spilsby\ \(Horncastle\)",
1260             "442848", "Northern\ Ireland",
1261             "441296", "Aylesbury",
1262             "4414373", "Clynderwen\ \(Clunderwen\)",
1263             "441684", "Malvern",
1264             "441536", "Kettering",
1265             "441621", "Maldon",
1266             "441540", "Kingussie",
1267             "441403", "Horsham",
1268             "441236", "Coatbridge",
1269             "4414304", "North\ Cave",
1270             "441740", "Sedgefield",
1271             "441796", "Pitlochry",
1272             "441505", "Johnstone",
1273             "4419649", "Hornsea",
1274             "441274", "Bradford",
1275             "441202", "Bournemouth",
1276             "441405", "Goole",
1277             "4412294", "Barrow\-in\-Furness",
1278             "441503", "Looe",
1279             "4414370", "Haverfordwest\/Clynderwen\ \(Clunderwen\)",
1280             "441838", "Dalmally",
1281             "441496", "Port\ Ellen",
1282             "441440", "Haverhill",
1283             "442884", "Northern\ Ireland",
1284             "441250", "Blairgowrie",
1285             "441382", "Dundee",
1286             "441269", "Ammanford",
1287             "441807", "Ballindalloch",
1288             "441968", "Penicuik",
1289             "441985", "Warminster",
1290             "441299", "Bewdley",
1291             "441539", "Kendal",
1292             "441466", "Huntly",
1293             "442311", "Southampton",
1294             "4418906", "Ayton",
1295             "441931", "Shap",
1296             "4415075", "Spilsby\ \(Horncastle\)",
1297             "442828", "Larne",
1298             "4418514", "Great\ Bernera",
1299             "441361", "Duns",
1300             "441287", "Guisborough",
1301             "441651", "Oldmeldrum",
1302             "442841", "Rostrevor",
1303             "441766", "Porthmadog",
1304             "441983", "Isle\ of\ Wight",
1305             "4413395", "Aboyne",
1306             "441439", "Helmsley",
1307             "442877", "Limavady",
1308             "441566", "Launceston",
1309             "441882", "Kinloch\ Rannoch",
1310             "441307", "Forfar",
1311             "441905", "Worcester",
1312             "441320", "Fort\ Augustus",
1313             "441629", "Matlock",
1314             "441690", "Betws\-y\-Coed",
1315             "441646", "Milford\ Haven",
1316             "4416867", "Llanidloes",
1317             "442830", "Newry",
1318             "4418904", "Coldstream",
1319             "441598", "Lynton",
1320             "441207", "Consett",
1321             "441869", "Bicester",
1322             "441903", "Worthing",
1323             "4414347", "Hexham",
1324             "441261", "Banff",
1325             "4418516", "Great\ Bernera",
1326             "441798", "Pulborough",
1327             "441874", "Brecon",
1328             "441387", "Dumfries",
1329             "4412296", "Barrow\-in\-Furness",
1330             "441483", "Guildford",
1331             "441291", "Chepstow",
1332             "441531", "Ledbury",
1333             "441768", "Penrith",
1334             "441785", "Stafford",
1335             "4414239", "Boroughbridge",
1336             "441899", "Biggar",
1337             "441673", "Market\ Rasen",
1338             "441939", "Wem",
1339             "441568", "Leominster",
1340             "441350", "Dunkeld",
1341             "442849", "Northern\ Ireland",
1342             "441659", "Sanquhar",
1343             "4414306", "Market\ Weighton",
1344             "441369", "Dunoon",
1345             "441282", "Burnley",
1346             "441485", "Hunstanton",
1347             "441583", "Carradale",
1348             "441675", "Coleshill",
1349             "4418477", "Tongue",
1350             "441431", "Helmsdale",
1351             "441910", "Tyneside\/Durham\/Sunderland",
1352             "441302", "Doncaster",
1353             "441887", "Aberfeldy",
1354             "442826", "Northern\ Ireland",
1355             "441782", "Stoke\-on\-Trent",
1356             "441491", "Henley\-on\-Thames",
1357             "441987", "Ebbsfleet",
1358             "4414349", "Bellingham",
1359             "441283", "Burton\-on\-Trent",
1360             "441866", "Kilchrenan",
1361             "441582", "Luton",
1362             "44118", "Reading",
1363             "441303", "Folkestone",
1364             "441268", "Basildon",
1365             "441285", "Cirencester",
1366             "441482", "Kingston\-upon\-Hull",
1367             "441340", "Craigellachie\ \(Aberlour\)",
1368             "441305", "Dorchester",
1369             "441591", "Llanwrtyd\ Wells",
1370             "441626", "Newton\ Abbot",
1371             "4419754", "Alford\ \(Aberdeen\)",
1372             "4416869", "Newtown",
1373             "441920", "Ware",
1374             "441604", "Northampton",
1375             "441672", "Marlborough",
1376             "4415395", "Grange\-over\-Sands",
1377             "441707", "Welwyn\ Garden\ City",
1378             "442829", "Kilrea",
1379             "441974", "Llanon",
1380             "441738", "Perth",
1381             "441902", "Wolverhampton",
1382             "441561", "Laurencekirk",
1383             "4418479", "Tongue",
1384             "441366", "Downham\ Market",
1385             "4413398", "Aboyne",
1386             "441950", "Sandwick",
1387             "441538", "Ipstones",
1388             "441298", "Buxton",
1389             "441803", "Torquay",
1390             "441969", "Leyburn",
1391             "442890", "Belfast",
1392             "441761", "Temple\ Cloud",
1393             "442846", "Northern\ Ireland",
1394             "441656", "Bridgend",
1395             "441407", "Holyhead",
1396             "441438", "Stevenage",
1397             "4415078", "Alford\ \(Lincs\)",
1398             "4414237", "Harrogate",
1399             "44238", "Southampton",
1400             "441630", "Market\ Drayton",
1401             "441896", "Galashiels",
1402             "441840", "Camelford",
1403             "441805", "Torrington",
1404             "441461", "Gretna",
1405             "441977", "Pontefract",
1406             "441726", "St\ Austell",
1407             "441273", "Brighton",
1408             "441704", "Southport",
1409             "441772", "Preston",
1410             "441549", "Lairg",
1411             "44117", "Bristol",
1412             "441691", "Oswestry",
1413             "441526", "Martin",
1414             "442883", "Northern\ Ireland",
1415             "441572", "Oakham",
1416             "441749", "Shepton\ Mallet",
1417             "4418518", "Stornoway",
1418             "44287", "Northern\ Ireland",
1419             "441275", "Clevedon",
1420             "441928", "Runcorn",
1421             "441404", "Honiton",
1422             "441472", "Grimsby",
1423             "4418901", "Coldstream\/Ayton",
1424             "441260", "Congleton",
1425             "442868", "Kesh",
1426             "442885", "Ballygawley",
1427             "4415394", "Hawkshead",
1428             "441259", "Alloa",
1429             "441348", "Fishguard",
1430             "441449", "Stowmarket",
1431             "441984", "Watchet\ \(Williton\)",
1432             "4414379", "Haverfordwest",
1433             "4414308", "Market\ Weighton",
1434             "441530", "Coalville",
1435             "441821", "Kinrossie",
1436             "4419755", "Alford\ \(Aberdeen\)",
1437             "441290", "Cumnock",
1438             "441246", "Chesterfield",
1439             "442898", "Belfast",
1440             "441456", "Glenurquhart",
1441             "4419640", "Hornsea\/Patrington",
1442             "441730", "Petersfield",
1443             "4412298", "Barrow\-in\-Furness",
1444             "441756", "Skipton",
1445             "441661", "Prudhoe",
1446             "4418902", "Coldstream",
1447             "441911", "Tyneside\/Durham\/Sunderland",
1448             "441638", "Newmarket",
1449             "441848", "Thornhill",
1450             "441556", "Castle\ Douglas",
1451             "441256", "Basingstoke",
1452             "441446", "Barry",
1453             "441490", "Corwen",
1454             "441698", "Motherwell",
1455             "441948", "Whitchurch",
1456             "441328", "Fakenham",
1457             "441429", "Hartlepool",
1458             "4419643", "Patrington",
1459             "4419751", "Alford\ \(Aberdeen\)\/Strathdon",
1460             "441790", "Spilsby",
1461             "441746", "Bridgnorth",
1462             "441341", "Barmouth",
1463             "441529", "Sleaford",
1464             "441858", "Market\ Harborough",
1465             "442838", "Portadown",
1466             "441377", "Driffield",
1467             "441884", "Tiverton",
1468             "441546", "Lochgilphead",
1469             "441590", "Lymington",
1470             "441729", "Settle",
1471             "4415076", "Louth",
1472             "441559", "Llandysul",
1473             "441775", "Spalding",
1474             "441473", "Ipswich",
1475             "441560", "Moscow",
1476             "441683", "Moffat",
1477             "441951", "Colonsay",
1478             "441575", "Kirriemuir",
1479             "441759", "Pocklington",
1480             "441828", "Coupar\ Angus",
1481             "442891", "Bangor\ \(Co\.\ Down\)",
1482             "441760", "Swaffham",
1483             "4418905", "Ayton",
1484             "441204", "Bolton",
1485             "4419752", "Alford\ \(Aberdeen\)",
1486             "4414377", "Haverfordwest",
1487             "441475", "Greenock",
1488             "441773", "Ripley",
1489             "441841", "Newquay\ \(Padstow\)",
1490             "441631", "Oban",
1491             "441226", "Barnsley",
1492             "441918", "Tyneside",
1493             "441358", "Ellon",
1494             "441249", "Chippenham",
1495             "441877", "Callander",
1496             "441384", "Dudley",
1497             "441573", "Kelso",
1498             "441460", "Chard",
1499             "441685", "Merthyr\ Tydfil",
1500             "441668", "Bamburgh",
1501             "4413396", "Ballater",
1502             "442882", "Omagh",};
1503              
1504             sub new {
1505 477     477 1 1164 my $class = shift;
1506 477         876 my $number = shift;
1507 477         3115 $number =~ s/(^\+44|\D)//g;
1508 477         3199 my $self = bless({ country_code => '44', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1509 477 100       2915 return $self if ($self->is_valid());
1510 114         409 $number =~ s/^(?:0)//;
1511 114         1255 $self = bless({ country_code => '44', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1512 114 100       414 return $self->is_valid() ? $self : undef;
1513             }
1514             1;