my %sec; my $newsecret; for my $char (split //, $secret){ next if exists $sec{$char}; $newsecret .= $char; $sec{$char}++; } #### $newsecret = join '', map { ??? } split //, $secret; #### my $newsecret = join '', map { my $char=$_; $_='' if exists $sec{$_}; $sec{$char}++} split //, $secret; #### ----------------------------------- --the good, the bad and the physi-- -----------------------------------