From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

### genome with 0 or 1 genes
sub new {
my ($class) = @_;
my $self = $class->SUPER::new;
}
sub mutate {
my ($self, $idx) = @_;
if ($self->{genes}[$idx] == 0) {
$self->{genes}[$idx] = 1;
} else {
$self->{genes}[$idx] = 0;
}
}
sub crossover {
my ($self, $idx1, $idx2, $genome) = @_;
for (my $i = $idx1; $i < $idx2; $i++) {
$self->{genes}[$i] = $genome->{genes}[$i] | $self->{genes}[$i];
}
}
1;