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]