echo "$XXX" | perl -pe '$_=(split "/", (split ";")[0])[-1]' #### my $url = "/bla/bla/123;yarg"; my @tmp = split ";", $url; # break string at semicolons @tmp = split "/", $tmp[0]; # break first chunk apart at "/" print $tmp[-1]; # Print the value we want #### my $url = "/bla/bla/123;yarg"; # Split on ";", keep only the first chunk, then split on "/" my @tmp = split "/", (split ";", $url)[0]; # The last item holds the value we want print $tmp[-1]; #### my $url = "/bla/bla/123;yarg"; $url = (split "/", (split ";", $url)[0])[-1]; print $url; #### perl -e '$a="/bla/bla/123;yarg"; print (split "/", (split ";", $a)[0])[-1]' print (...)_ interpreted as function at -e line 1. syntax error at -e line 1, near ")[" execution of -e aborted due to compilation errors. #### perl -e '$a="/bla/bla/123;yarg"; print +(split "/", (split ";", $a)[0])[-1]' 123