#! /usr/bin/perl use strict; use warnings; use 5.010; my $known = "Name Vornamesip:0813893511\@b2b.domain"; my $unknown = "0813893511sip:0813893511\@b2b.domain"; # reformat one caller string sub reformat_caller { my $caller = shift; my ( $name, $number ) = split m{sip:|@}, $caller; # use $name as long as it does not contain only digits my $result = $name . " " if $name !~ m/^\d+$/; # alternative, $name should not be the same as $number #my $result = $name . " " if $name ne $number; # always use $number $result .= $number; return $result; } for my $caller ( $known, $unknown ) { # pretty print caller string say reformat_caller($caller); }