our
$VERSION
= 1.20250323211832;
my
$formatters
= [
{
'format'
=>
'$1-$2'
,
'leading_digits'
=>
'[34679]'
,
'pattern'
=>
'(\\d{3})(\\d{4})'
},
{
'format'
=>
'$1 $2 $3'
,
'leading_digits'
=>
'[89]'
,
'pattern'
=>
'(\\d{3})(\\d{3})(\\d{4})'
}
];
my
$validators
= {
'fixed_line'
=> '
(?:
3(?:
0[0-4]|
3[0-59]
)|
6(?:
[58][024689]|
6[024-68]|
7[02468]
)
)\\d{4}
',
'geographic'
=> '
(?:
3(?:
0[0-4]|
3[0-59]
)|
6(?:
[58][024689]|
6[024-68]|
7[02468]
)
)\\d{4}
',
'mobile'
=> '
(?:
46[46]|
[79]\\d\\d
)\\d{4}
',
'pager'
=>
''
,
'personal_number'
=>
''
,
'specialrate'
=> '(900\\d{7})|(
4(?:
0[01]|
50
)\\d{4}
)',
'toll_free'
=>
'800\\d{7}'
,
'voip'
=>
''
};
my
%areanames
= ();
$areanames
{en} = {
"960674"
,
"Faafu"
,
"960668"
,
"Alifu\ Dhaalu"
,
"960684"
,
"Gaafu\ Dhaalu"
,
"960688"
,
"Addu"
,
"960302"
,
"Malé\ Region"
,
"960664"
,
"Kaafu"
,
"960678"
,
"Thaa"
,
"960332"
,
"Malé\/Hulhulé\/Aarah"
,
"960686"
,
"Gnaviyani"
,
"960660"
,
"Baa"
,
"960676"
,
"Dhaalu"
,
"960335"
,
"Hulhumalé"
,
"960680"
,
"Laamu"
,
"960670"
,
"Vaavu"
,
"960666"
,
"Alifu\ Alifu"
,
"960689"
,
"Addu"
,
"960652"
,
"Haa\ Dhaalu"
,
"960339"
,
"Vilimalé"
,
"960300"
,
"Malé\/Hulhulé\/Aarah"
,
"960333"
,
"Malé\/Hulhulé\/Aarah"
,
"960665"
,
"Kaafu"
,
"960303"
,
"Malé\ Region"
,
"960330"
,
"Malé\/Hulhulé\/Aarah"
,
"960331"
,
"Malé\/Hulhulé\/Aarah"
,
"960658"
,
"Raa"
,
"960301"
,
"Malé\/Hulhulé\/Aarah"
,
"960654"
,
"Shaviyani"
,
"960650"
,
"Haa\ Alifu"
,
"960659"
,
"Raa"
,
"960656"
,
"Noonu"
,
"960334"
,
"Malé\/Hulhulé\/Aarah"
,
"960304"
,
"Malé\ Region"
,
"960662"
,
"Lhaviyani"
,
"960682"
,
"Gaafu\ Alifu"
,
"960672"
,
"Meemu"
,};
my
$timezones
= {
''
=> [
'Indian/Maldives'
]
};
sub
new {
my
$class
=
shift
;
my
$number
=
shift
;
$number
=~ s/(^\+960|\D)//g;
my
$self
=
bless
({
country_code
=>
'960'
,
number
=>
$number
,
formatters
=>
$formatters
,
validators
=>
$validators
,
timezones
=>
$timezones
,
areanames
=> \
%areanames
},
$class
);
return
$self
->is_valid() ?
$self
:
undef
;
}
1;