sub popnum3 { my ( $x, $y, $z, $zazb ) = @_; if ( $y == 0 ) { $aob[$x][0] = $initial * ( 1 + $z ); } else { while (1) { my $xda = int rand( $total + 1 ); if ( substr( $zazb, $xda, 1 ) eq 'c' ) { $aob[$x][$y] = $aob[$xda][ $y - 1 ] * ( 1 + $z ); last; } } } return $aob[$x][$y]; } #### sub popnum3 { my ( $x, $y, $z, $zazb ) = @_; if ( $y == 0 ) { $aob[$x][0] = $initial * ( 1 + $z ); } else { while (1) { my @cPosns; push @cPosns, pos $zazb while $zazb =~ m{(?=c)}g; my $offset = splice @cPosns, rand @cPosns, 1; $aob[$x][$y] = $aob[$offset][ $y - 1 ] * ( 1 + $z ); last; } } return $aob[$x][$y]; } #### my @cPosns; push @cPosns, pos $zazb while $zazb =~ m{(?=c)}g; my $offset = splice @cPosns, rand @cPosns, 1; #### tie my @aod, 'Tie::File', 'bias/array.txt', recsep => "\n"; my $letter = 'c'; my $result = 0; open my $DATABASE, '>', $datafileout or croak 'dataout not made.'; foreach my $r (0 .. $gener){ $result = index($aod[$r], $letter); while ($result != -1){ print {$DATABASE} qq{$result,}; my $offset = $result + 1; $result = index($aod[$r], $letter, $offset); } print {$DATABASE} qq{\n} or croak 'unable to print'; } close $DATABASE or croak 'data1 not closed.'; #### my @offst = split /\,/xsm, $off[$y - 1]; #### my $index = int rand ($#offst); $offset = $offst[$index];