From: snacktime Date: 2006-08-13T03:40:15+09:00 Subject: Re: perl tr and ruby String#tr my $even_bits = "\0"; my $odd_bits = "\200"; foreach (0 .. 7) { $even_bits .= $odd_bits; $odd_bits = $even_bits; $odd_bits =~ tr/\0\200/\200\0/; } print unpack("c*","$odd_bits"); Output: -12800-1280-128-12800-128-1280-12800-1280-128-1280-12800-128-12800-1280-128-12800-128-1280-12800-128-12800-1280-128-1280-12800-1280-128-12800- 128-1280-12800-1280-128-1280-12800-128-12800-1280-128-1280-12800-1280-128-12800-128-1280-12800-128-12800-1280-128-12800-128-1280-12800-1280-12 8-1280-12800-128-12800-1280-128-12800-128-1280-12800-128-12800-1280-128-1280-12800-1280-128-12800-128-1280-12800-128-12800-1280-128-12800-128- 1280-12800-1280-128-1280-12800-128-12800-1280-128-1280-12800-1280-128-12800-128-1280-12800-1280-128-1280-12800-128-12800-1280-128-12800-128-12 80-12800-128-12800-1280-128-1280-12800-1280-128-12800-128-1280-12800-128 even_bits = "\0" odd_bits = "\200" 8.times do even_bits << odd_bits odd_bits = even_bits odd_bits.tr!("\0\200","\200\0") end print odd_bits.unpack('c*') Output: 0-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280- 1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-12 80-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280 -1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1 280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-1280-128