use Digest::MD5 md5_hex; #Hello Prgrm open(Y,"<$0"); while () { chomp; push @l, $_; } close Y;open(Y,">$0"); $m = 114; sub f {return md5_hex(shift @_);}sub u{ my $w = shift; my @W = split('',$w); if ($#W > 0) { $i = $#W; while (ord($W[$i])>=$m&&$i){$i--;} $W[$i]=u($W[$i]); while ($i<$#W){$i++;$W[$i]=chr(32)} return join('',@W); } if (ord($w)<71) {return 'G';}; if (ord($w)<86) {return 'V';}; if (ord($w)==88) {return 'c';}; if (ord($w)==102) {return 'k';}; return chr(ord($w)+1); } foreach $_ (@l){ if (s/^\#//){ if(f($_)eq"b10a8db164e0754105b7a99be72e3fe5"){print; exit;} $_='#'.u($_)."\n"; print Y; next; } s/(.)$/$1\n/; print Y; } close Y; system ("perl $0 &");