http://www.perlmonks.org?node_id=34133


in reply to Genetic Programming or breeding Perls

Very cool :) One small nitpick though, is the use of map in void context. Specifically (in Individual->get_code):
my $code = ""; map { $code .= $_} (@{$self->{GENES}});
could be:
my $code = join('', @{$self->{GENES}});
Also, if your Individual->create() method returned $self at the end, you could change this (in Population->new):
for my $i (0 .. $self->{SIZE}) { my $individual = Individual->new(); $individual->create(); push (@{$self->{INDIVIDUALS}}, $individual); }
To this:
push (@{$self->{INDIVIDUALS}}, Individual->new->create) for 0..$self-> +{SIZE};
Or maybe even this:
$self->{INDIVIDUALS} = [ map {Individual->new->create} 0..$self->{SIZE +} ];
But now I'm probably being too nit-picky :) </code>