in reply to (Golf) Kaprekar's Process
The answers given thus far all fail on numbers (such as 100 and 211) which generate twodigit numbers in their intermediate results. Here's a good test for this particular golf:
$ = 1;
for (100..999) {
next if /(.)\1\1/;
print "$_ : ", k($_), $/;
}
And here's a correct solution at 74 68 63 chars:
sub k {
$_=sprintf"%03d",pop;/495/?0:1+k(($_=join'',sort/./g)+reverse)
}
MeowChow
s aamecha.s a..a\u$&owag.print
Re: Re: (Golf) Kaprekar's Process by Anonymous Monk on Jun 17, 2001 at 00:47 UTC 
sub k {
$_="000""@{[pop]}";/495/?0:1+k(($_=join('',sort/./g)+reverse)
}
62
sean  [reply] [d/l] 

Verrrry cool idea... this can actually come down to 56:
sub k {
$_="000""@_";/495/?0:1+k(($_=join'',sort/./g)+reverse)
}
The interesting thing about this is that it's not the same as rightformatting the number via sprintf, since the 0 goes to the back, but it doesn't matter because the digits are reordered anyway.
MeowChow
s aamecha.s a..a\u$&owag.print  [reply] [d/l] 

Yeah, i realized the whole @{[pop]} bit wasn't needed about 20 miles from home, figured someone would've already noticed it by the time i got back..
Here's one more:
sub k {
$_=0 x3"@_";/495/?0:1+k(($_=join'',sort/./g)+reverse)
}
55
sean  [reply] [d/l] [select] 

Nope.. by sean (Beadle) on Jun 18, 2001 at 09:01 UTC

