...
my %rec;
@rec{@col_names} = @f;
format_phone($rec{$_}) foreach(qw(ext ddi mobile));
push @results, \%rec;
...
sub format_phone {
$_[0] =~ s/\D//g; # strip non-digits
$_[0] =~ s/^(02\d)/$1 /; # space after 021, 027 etc
$_[0] =~ s/(\d{4})(\d{4})/$1 $2/; # 8 digits as: nnnn nnnn
$_[0] =~ s/(\d{3})(\d{4})/$1 $2/; # 7 digits as: nnn nnnn
$_[0] =~ s/(\d{3})(\d{3})/$1 $2/; # 6 digits as: nnn nnn
}