http://www.perlmonks.org?node_id=486270

anniyan has asked for the wisdom of the Perl Monks concerning the following question:

Monks, I have one question realated to translation.

I have read the following from an online material.

The c option (c is for "complement") translates all characters that are not specified. For example, the statement $string =~ tr/\d/ /c; replaces everything that is not a digit with a space.

But when i tried the following i am getting the following output than what i expected.

$a = 'acvdef431234'; $a =~ tr/\d/ /c; print "$a"; output: d expected output: 431234

But if i used [0-9] it is working good.

$a = 'acvdef431234'; $a =~ tr/[0-9]/ /c; print "$a"; output: 431234

I am in total confusion. Could anyone explain whats going on there.

Regards,
Anniyan
(CREATED in HELL by DEVIL to s|EVILS|GOODS|g in WORLD)

2005-08-24 Retitled by Arunbear, as per Monastery guidelines
Original title: 'tr///c'