sub rankdwn { my ( $yb, $chntot, $incrsdel ) = @_; my $cnd_a = $aod[$yb] =~ tr/a/a/; my $cnd_y = $aod[$yb] =~ tr/y/y/; while ( $cnd_y < $incrsdel && $cnd_a > 0 ) { my $xda = int rand( $chntot + 1 ); if ( substr( $aod[$yb], $xda, 1 ) eq 'a' ) { substr $aod[$yb], $xda, 1, 'y'; $cnd_a--; $cnd_y++; } } while ( $cnd_y < $incrsdel && $cnd_a == 0 ) { my $xda = int rand( $chntot + 1 ); if ( substr( $aod[$yb], $xda, 1 ) eq 'c' ) { substr $aod[$yb], $xda, 1, 'y'; $cnd_y++; } } return; }