my $string = "New York/Chicago/New York/Chicago/Boston"; 1 while $string =~ s!(^|/)([^/]+)(.*)/\2(/|$)!$1$2$3$4!g; print $string; #outputs "New York/Chicago/Boston"