Pedro A Reche Gallardo wrote:
>
> Hi All,
Hello,
> I was trying to generate variations of the 8 character string
> "AAAAAAAA" by changing every character with the elements containing in
> an array @aa = ('A', 'B', 'C', 'D'). The way I did it was quite naive,
> using a "for" loop that changes the A character at position 1 of the
> AAAAAAAA string by all the characters in the @array, and repeating
> the for loop to change the remaining positions. Thus, I have 8 for
> loops in my code, and wonder how I can achieve the same whithout having
> to write 8 times the for loop. The actual code I am using is attached
> bellow. Any suggestion will be welcomed, and thanks in advance for the
> help.
>
> #!/usr/sbin/perl -w
> use strict;
> my @aa =
> ('A','C','D','E','F','G','H','I','K','L','M','N','P','Q','R','S','T','V','W','Y');
>
> my $i;
> my $l;
> $l = @aa;
> $l = $l -1;
>
> for ($i= 0; $i <= $l; $i++) {
> printf "%3s %8s\n", "p1$aa[$i]", "$aa[$i]AAAAAAA";
> }
>
> for ($i= 1; $i <= $l; $i++) {
> printf "%3s %8s\n", "p2$aa[$i]", "A$aa[$i]AAAAAA";
>
> }
>
> for ($i= 1; $i <= $l; $i++) {
> printf "%3s %8s\n", "p3$aa[$i]", "AA$aa[$i]AAAAA";
> }
>
> for ($i= 1; $i <= $l; $i++) {
> printf "%3s %8s\n", "p4$aa[$i]", "AAA$aa[$i]AAAA";
> }
> #
> for ($i= 1; $i <= $l; $i++) {
> printf "%3s %8s\n", "p5$aa[$i]", "AAAA$aa[$i]AAA";
> }
>
> for ($i= 1; $i <= $l; $i++) {
> printf "%3s %8s\n", "p6$aa[$i]", "AAAAA$aa[$i]AA";
> }
>
> for ($i= 1; $i <= $l; $i++) {
> printf "%3s %8s\n", "p7$aa[$i]", "AAAAAA$aa[$i]A";
> }
>
> for ($i= 1; $i <= $l; $i++) {
> printf "%3s %8s\n", "p8$aa[$i]", "AAAAAAA$aa[$i]";
> }
#!/usr/sbin/perl -w
use strict;
my @aa = ( 'A','C'..'I','K'..'N','P'..'W','Y' );
my $word = 'AAAAAAAA';
for my $pos ( 0 .. length($word)-1 ) {
for my $letter ( @aa ) {
substr $word, $pos, 1, $letter;
printf "%3s %8s\n", "p8$letter", $word;
}
substr $word, $pos, 1, 'A';
}
__END__
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]