my $string = "|90|93|foo|bar|91|92|95|96|906|"; my $result = join "", map { s/^9[0-6]$/X/; $_ } $string =~ m/(\||[^|]+)/g; print $result; __END__ |X|X|foo|bar|X|X|X|X|906| #### split /\|/ $string #### join "|"
## split /\|/ $string ##
## join "|"