sub fitnessCalculation{ ... } sub mixAndMutate{ ... } my @data = readData(); my @generation = genRandomGeneration( 1000 ); while( 1 ) { $_->score = fitnessCalculation( $_ ) for @generation; @generation = ( sort @generation ) [ 0 .. 200 ]; last if $generation[ 0 ]->score > $targetScore; push @generation, mixAndMutate( @generation ); } report $generation[ 0 ];