#!/usr/bin/perl
use CGI qw(:all);
my $num = param('num');
my $newnum = phonefix($num);
print "Content-type: text/html\n\n";
print "\n";
print "Cellphone Number Converter
Type in an \'old\' number and get a \'new\' one
";
print "חישוב המספר הסלולרי החדש
הקלד מספר קיים וקבל מספר חדש
";
print "$newnum
\n";
print qq(
"; print "\n"; print phonefix($ARGV[0]) . "\n"; sub phonefix ($) { my ($num) = @_; my %Pmap = ( '050' => '050', '051' => '050', '056' => '050', '068' => '050', '052' => '052', '053' => '052', '058' => '052', '064' => '052', '065' => '052', '054' => '054', '055' => '054', '066' => '054', '067' => '054', '057' => '057', ); $num =~ s/\D+//g; return $num if length $num != 9; return $num if $num !~ /^(0[56].)(.*)/; my $pfx = $1; my $rest = $2; my $mapped = $Pmap{$pfx}; return $num if $mapped eq ''; my $extra; if ($pfx eq '050') { $extra = '5'; } elsif ($pfx eq '051') { $extra = '7'; } else { $extra = substr $pfx, 2, 1; } return "$mapped$extra$rest"; }