The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# automatically generated file, don't edit



# Copyright 2011 David Cantrell, derived from data from libphonenumber
# http://code.google.com/p/libphonenumber/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
package Number::Phone::StubCountry::SE;
use base qw(Number::Phone::StubCountry);

use strict;
use warnings;
our $VERSION = 1.20150313205300;

my $formatters = [{'leading_digits' => '8','pattern' => '(8)(\\d{2,3})(\\d{2,3})(\\d{2})'},{'leading_digits' => '1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90','pattern' => '([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})'},{'pattern' => '([1-69]\\d)(\\d{3})(\\d{2})','leading_digits' => '1[13689]|2[136]|3[1356]|4[0246]|54|6[03]|90'},{'leading_digits' => '1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])','pattern' => '(\\d{3})(\\d{2})(\\d{2})(\\d{2})'},{'pattern' => '(\\d{3})(\\d{2,3})(\\d{2})','leading_digits' => '1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])'},{'leading_digits' => '7','pattern' => '(7\\d)(\\d{3})(\\d{2})(\\d{2})'},{'pattern' => '(77)(\\d{2})(\\d{2})','leading_digits' => '7'},{'leading_digits' => '20','pattern' => '(20)(\\d{2,3})(\\d{2})'},{'pattern' => '(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})','leading_digits' => '9[034]'},{'leading_digits' => '9[034]','pattern' => '(9[034]\\d)(\\d{4})'}];
my $validators = {'geographic' => '1(?:0[1-8]\\d{6}|[136]\\d{5,7}|(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)\\d{5,6})|2(?:[136]\\d{5,7}|(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])\\d{5,6})|3(?:[356]\\d{5,7}|(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])\\d{5,6})|4(?:0[1-9]\\d{4,6}|[246]\\d{5,7}|(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])\\d{5,6})|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])\\d{5,6}|6(?:0[1-9]\\d{4,6}|3\\d{5,7}|(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])\\d{5,6})|8[1-9]\\d{5,7}|9(?:0[1-9]\\d{4,6}|(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8])\\d{5,6})','toll_free' => '20(?:0(?:0\\d{2}|[1-9](?:0\\d{1,4}|[1-9]\\d{4}))|1(?:0\\d{4}|[1-9]\\d{4,5})|[2-9]\\d{5})','mobile' => '7[0236]\\d{7}','pager' => '74[02-9]\\d{6}','personal_number' => '75[1-8]\\d{6}','special_rate' => '(77(?:0(?:0\\d{2}|[1-9](?:0\\d|[1-9]\\d{4}))|[1-6][1-9]\\d{5}))|(9(?:00|39|44)(?:1(?:[0-26]\\d{5}|[3-57-9]\\d{2})|2(?:[0-2]\\d{5}|[3-9]\\d{2})|3(?:[0139]\\d{5}|[24-8]\\d{2})|4(?:[045]\\d{5}|[1-36-9]\\d{2})|5(?:5\\d{5}|[0-46-9]\\d{2})|6(?:[679]\\d{5}|[0-58]\\d{2})|7(?:[078]\\d{5}|[1-69]\\d{2})|8(?:[578]\\d{5}|[0-469]\\d{2})))|()','fixed_line' => '1(?:0[1-8]\\d{6}|[136]\\d{5,7}|(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)\\d{5,6})|2(?:[136]\\d{5,7}|(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])\\d{5,6})|3(?:[356]\\d{5,7}|(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])\\d{5,6})|4(?:0[1-9]\\d{4,6}|[246]\\d{5,7}|(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])\\d{5,6})|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])\\d{5,6}|6(?:0[1-9]\\d{4,6}|3\\d{5,7}|(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])\\d{5,6})|8[1-9]\\d{5,7}|9(?:0[1-9]\\d{4,6}|(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8])\\d{5,6})','voip' => ''};sub areaname { my $self = shift; my $number = $self->{number}; my %map = (4611 => "Norrk\Ã\¶ping",46120 => "\Ã\…tvidaberg",46121 => "S\Ã\¶derk\Ã\¶ping",46122 => "Finsp\Ã\¥ng",46123 => "Valdemarsvik",46125 => "Vikbolandet",4613 => "Link\Ã\¶ping",46140 => "Tran\Ã\¥s",46141 => "Motala",46142 => "Mj\Ã\¶lby\-Sk\Ã\¤nninge\-Boxholm",46143 => "Vadstena",46144 => "\Ã\–desh\Ã\¶g",46150 => "Katrineholm",46151 => "Ving\Ã\¥ker",46152 => "Str\Ã\¤ngn\Ã\¤s",46155 => "Nyk\Ã\¶ping\-Oxel\Ã\¶sund",46156 => "Trosa\-Vagnh\Ã\¤rad",46157 => "Flen\-Malmk\Ã\¶ping",46158 => "Gnesta",46159 => "Mariefred",4616 => "Eskilstuna\-Torsh\Ã\¤lla",46171 => "Enk\Ã\¶ping",46174 => "Alunda",46175 => "Hallstavik\-Rimbo",46176 => "Norrt\Ã\¤lje",4618 => "Uppsala",4619 => "\Ã\–rebro\-Kumla",4621 => "V\Ã\¤ster\Ã\¥s",46220 => "Hallstahammar\-Surahammar",46221 => "K\Ã\¶ping",46222 => "Skinnskatteberg",46224 => "Sala\-Heby",46225 => "Hedemora\-S\Ã\¤ter",46226 => "Avesta\-Krylbo",46227 => "Kungs\Ã\¶r",46240 => "Ludvika\-Smedjebacken",46241 => "Gagnef\-Floda",46243 => "Borl\Ã\¤nge",46246 => "Sv\Ã\¤rdsj\Ã\¶\-Enviken",46247 => "Leksand\-Insj\Ã\¶n",46248 => "R\Ã\¤ttvik",46250 => "Mora\-Orsa",46251 => "\Ã\„lvdalen",46253 => "Idre\-S\Ã\¤rna",4626 => "G\Ã\¤vle\-Sandviken",46270 => "S\Ã\¶derhamn",46271 => "Alfta\-Edsbyn",46278 => "Bolln\Ã\¤s",46280 => "Malung",46281 => "Vansbro",46290 => "Hofors\-Storvik",46291 => "Hedesunda\-\Ã\–sterf\Ã\¤rnebo",46292 => "T\Ã\¤rnsj\Ã\¶\-\Ã\–sterv\Ã\¥la",46293 => "Tierp\-S\Ã\¶derfors",46294 => "Karlholmsbruk\-Sk\Ã\¤rplinge",46295 => "\Ã\–rbyhus\-Dannemora",46297 => "Ockelbo\-Hamr\Ã\¥nge",46300 => "Kungsbacka",46301 => "Hind\Ã\¥s",46303 => "Kung\Ã\¤lv",4631 => "Gothenburg",46320 => "Kinna",46321 => "Ulricehamn",46322 => "Alings\Ã\¥s\-V\Ã\¥rg\Ã\¥rda",46325 => "Svenljunga\-Tranemo",4633 => "Bor\Ã\¥s",46340 => "Varberg",46345 => "Hyltebruk\-Torup",46346 => "Falkenberg",4635 => "Halmstad",4636 => "J\Ã\¶nk\Ã\¶ping\-Huskvarna",46370 => "V\Ã\¤rnamo",46371 => "Gislaved\-Anderstorp",46372 => "Ljungby",46380 => "N\Ã\¤ssj\Ã\¶",46381 => "Eksj\Ã\¶",46382 => "S\Ã\¤vsj\Ã\¶",46383 => "Vetlanda",46390 => "Gr\Ã\¤nna",46392 => "Mullsj\Ã\¶",46393 => "Vaggeryd",4640 => "Malm\Ã\¶",46410 => "Trelleborg",46411 => "Ystad",46413 => "Esl\Ã\¶v\-H\Ã\¶\Ã\¶r",46414 => "Simrishamn",46415 => "H\Ã\¶rby",46416 => "Sj\Ã\¶bo",46417 => "Tomelilla",46418 => "Landskrona\-Sval\Ã\¶v",4642 => "Helsingborg\-H\Ã\¶gan\Ã\¤s",46430 => "Laholm",46431 => "\Ã\„ngelholm\-B\Ã\¥stad",46433 => "Markaryd\-Str\Ã\¶msn\Ã\¤sbruk",46435 => "Klippan\-Perstorp",4644 => "Kristianstad",46451 => "H\Ã\¤ssleholm",46454 => "Karlshamn\-Olofstr\Ã\¶m",46455 => "Karlskrona",46456 => "S\Ã\¶lvesborg\-Brom\Ã\¶lla",46457 => "Ronneby",46459 => "Ryd",4646 => "Lund",46470 => "V\Ã\¤xj\Ã\¶",46471 => "Emmaboda",46472 => "Alvesta\-Rydaholm",46474 => "\Ã\…seda\-Lenhovda",46476 => "\Ã\„lmhult",46477 => "Tingsryd",46478 => "Lessebo",46479 => "Osby",46480 => "Kalmar",46481 => "Nybro",46485 => "\Ã\–land",46486 => "Tors\Ã\¥s",46490 => "V\Ã\¤stervik",46491 => "Oskarshamn\-H\Ã\¶gsby",46492 => "Vimmerby",46493 => "Gamleby",46494 => "Kisa",46496 => "Mariannelund",46498 => "Gotland",46499 => "M\Ã\¶nster\Ã\¥s",46500 => "Sk\Ã\¶vde",46501 => "Mariestad",46502 => "Tidaholm",46503 => "Hjo",46504 => "Tibro",46505 => "Karlsborg",46506 => "T\Ã\¶reboda\-Hova",46510 => "Lidk\Ã\¶ping",46511 => "Skara\-G\Ã\¶tene",46512 => "Vara\-Nossebro",46514 => "Gr\Ã\¤storp",46515 => "Falk\Ã\¶ping",46520 => "Trollh\Ã\¤ttan",46521 => "V\Ã\¤nersborg",46522 => "Uddevalla",46523 => "Lysekil",46524 => "Munkedal",46525 => "Grebbestad",46526 => "Str\Ã\¶mstad",46528 => "F\Ã\¤rgelanda",46530 => "Mellerud",46531 => "Bengtsfors",46532 => "\Ã\…m\Ã\¥l",46533 => "S\Ã\¤ffle",46534 => "Ed",4654 => "Karlstad",46550 => "Kristinehamn",46551 => "Gullsp\Ã\¥ng",46552 => "Deje",46553 => "Molkom",46554 => "Kil",46560 => "Torsby",46563 => "Hagfors\-Munkfors",46564 => "Syssleb\Ã\¤ck",46565 => "Sunne",46570 => "Arvika",46571 => "Charlottenberg\-\Ã\…motfors",46573 => "\Ã\…rj\Ã\¤ng",46580 => "Kopparberg",46581 => "Lindesberg",46582 => "Hallsberg",46583 => "Askersund",46584 => "Lax\Ã\¥",46585 => "Fjugesta\-Svart\Ã\¥",46587 => "Nora",46589 => "Arboga",46590 => "Filipstad",46591 => "H\Ã\¤llefors\-Grythyttan",4660 => "Sundsval\-Timr\Ã\¥",46611 => "H\Ã\¤rn\Ã\¶sand",46612 => "Kramfors",46613 => "Ull\Ã\¥nger",46620 => "Sollefte\Ã\¥",46621 => "Junsele",46622 => "N\Ã\¤s\Ã\¥ker",46623 => "Ramsele",46624 => "Backe",4663 => "\Ã\–stersund",46640 => "Krokom",46642 => "Lit",46643 => "Hallen\-Oviken",46644 => "Hammerdal",46645 => "F\Ã\¶llinge",46647 => "\Ã\…re\-J\Ã\¤rpen",46650 => "Hudiksvall",46651 => "Ljusdal",46652 => "Bergsj\Ã\¶",46653 => "Delsbo",46657 => "Los",46660 => "\Ã\–rnsk\Ã\¶ldsvik",46661 => "Bredbyn",46662 => "Bj\Ã\¶rna",46663 => "Husum",46670 => "Str\Ã\¶msund",46671 => "Hoting",46672 => "G\Ã\¤ddede",46680 => "Sveg",46682 => "R\Ã\¤tan",46684 => "Hede\-Fun\Ã\¤sdalen",46687 => "Svenstavik",46690 => "\Ã\…nge",46691 => "Torpshammar",46692 => "Liden",46693 => "Br\Ã\¤cke\-G\Ã\¤ll\Ã\¶",46696 => "Hammarstrand",468 => "Stockholm",4690 => "Ume\Ã\¥",46910 => "Skellefte\Ã\¥",46911 => "Pite\Ã\¥",46912 => "Byske",46913 => "L\Ã\¶v\Ã\¥nger",46915 => "Bastutr\Ã\¤sk",46916 => "J\Ã\¶rn",46918 => "Norsj\Ã\¶",46920 => "Lule\Ã\¥",46921 => "Boden",46922 => "Haparanda",46923 => "Kalix",46924 => "R\Ã\¥ne\Ã\¥",46925 => "Lakatr\Ã\¤sk",46926 => "\Ã\–verkalix",46927 => "\Ã\–vertorne\Ã\¥",46928 => "Harads",46929 => "\Ã\„lvsbyn",46930 => "Nordmaling",46932 => "Bjurholm",46933 => "Vindeln",46934 => "Robertsfors",46935 => "V\Ã\¤nn\Ã\¤s",46940 => "Vilhelmina",46941 => "\Ã\…sele",46942 => "Dorotea",46950 => "Lycksele",46951 => "Storuman",46952 => "Sorsele",46953 => "Mal\Ã\¥",46954 => "T\Ã\¤rnaby",46961 => "Arjeplog",46970 => "G\Ã\¤llivare",46971 => "Jokkmokk",46975 => "Hakkas",46976 => "Vuollerim",46977 => "Korpilombolo",46978 => "Pajala",46980 => "Kiruna",46981 => "Vittangi",);
      foreach my $prefix (map { substr($number, 0, $_) } reverse(1..length($number))) {
        return $map{"46$prefix"} if exists($map{"46$prefix"});
      }
      return undef;
    }
sub new {
  my $class = shift;
  my $number = shift;
  $number =~ s/(^\+46|\D)//g;
  my $self = bless({ number => $number, formatters => $formatters, validators => $validators }, $class);
  return $self if ($self->is_valid());
  $number =~ s/(^0)//g;
  $self = bless({ number => $number, formatters => $formatters, validators => $validators }, $class);
  return $self->is_valid() ? $self : undef;
}

1;