#!/usr/bin/perl -l sub censor{ my ($s) = @_; $s =~ s/.(.|$)/*$1/g; return $s; } while(my $line=<>){ chomp($line); $line =~ s/(.*?)(:|$)/censor($1)."$2"/eg; print $line; } #### 123:1234:12345:123456:1234567 *2*:*2*4:*2*4*:*2*4*6:*2*4*6*