our
$VERSION
= 1.20250323211839;
my
$formatters
= [
{
'format'
=>
'$1 $2'
,
'leading_digits'
=>
'[57-9]'
,
'pattern'
=>
'(\\d{3})(\\d{4})'
}
];
my
$validators
= {
'fixed_line'
=> '
(?:
38[0-8]|
48[4-9]
)\\d\\d|
(?:
2[02-9]|
3[4-7]|
88
)\\d{3}
',
'geographic'
=> '
(?:
38[0-8]|
48[4-9]
)\\d\\d|
(?:
2[02-9]|
3[4-7]|
88
)\\d{3}
',
'mobile'
=> '
(?:
[58]\\d|
7[013-7]
)\\d{5}
',
'pager'
=>
''
,
'personal_number'
=>
''
,
'specialrate'
=> '(
(?:
3[03]|
900\\d
)\\d{3}
)',
'toll_free'
=>
'81[18]\\d\\d'
,
'voip'
=> '
9(?:
0[1-9]|
1[01]
)\\d{4}
'
};
my
%areanames
= ();
$areanames
{en} = {
"67828"
,
"Port\ Vila\,\ Shefa"
,
"67823"
,
"Port\ Vila\,\ Shefa"
,
"67824"
,
"Port\ Vila\,\ Shefa"
,
"67836"
,
"Sanma"
,
"67827"
,
"Port\ Vila\,\ Shefa"
,
"67825"
,
"Port\ Vila\,\ Shefa"
,
"67837"
,
"Luganville"
,
"67826"
,
"Port\ Vila\,\ Shefa"
,
"67838"
,
"Penama\/Torba"
,
"67829"
,
"Port\ Vila\,\ Shefa"
,
"67822"
,
"Port\ Vila\,\ Shefa"
,
"67888"
,
"Tafea"
,
"6784"
,
"Malampa"
,};
my
$timezones
= {
''
=> [
'Pacific/Efate'
]
};
sub
new {
my
$class
=
shift
;
my
$number
=
shift
;
$number
=~ s/(^\+678|\D)//g;
my
$self
=
bless
({
country_code
=>
'678'
,
number
=>
$number
,
formatters
=>
$formatters
,
validators
=>
$validators
,
timezones
=>
$timezones
,
areanames
=> \
%areanames
},
$class
);
return
$self
->is_valid() ?
$self
:
undef
;
}
1;