Moin, moin!
Mal angenommen, der zusammengesetzte Name steht in $name und der Vorname, der Dir ja bekannt ist, wird in $vorname gespeichert. Dann brauchst Du nur noch den zusammengesetzten Namen in die Variable $nachname zu übernehmen und daraus am Anfang (^) den Vornamen zu beseitigen, indem Du den Variableninhalt mit dem Teil nach dem Vornamen (der Teil, der im Codebeispiel durch den geklammerten Ausdruck in $1 zwischengespeichert wird) überschreibst.
$name="hansmeier";
$vorname="hans";
($nachname=$name)=~s/^$vorname(.*)/$1/;
print $nachname;
Alles klar?
Norbert