Try something like this:
my $string = "AAAAAAAA"; my @aa = qw(A C D E F G H I K L M N P Q R S T V W Y); foreach(@aa){ my $i; my @strArray = split //,$string; for($i = 0;defined $strArray[$i];$i++){ my $j; for($j = 0;defined $strArray[$j];$j++){ if($j == $i){ print "$_"; }else{ print "$strArray[$j]"; } } } } Disclaimer: I can't test this right now, but I'm pretty sure it will work. -----Original Message----- From: Pedro A Reche Gallardo To: [EMAIL PROTECTED] Sent: 3/22/02 11:17 AM Subject: string question Hi All, 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. Cheers #!/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]"; } ******************************************************************* PEDRO A. RECHE , pHD TL: 617 632 3824 Dana-Farber Cancer Institute, FX: 617 632 4569 Harvard Medical School, EM: [EMAIL PROTECTED] 44 Binney Street, D1510A, EM: [EMAIL PROTECTED] Boston, MA 02115 URL: http://www.reche.org ******************************************************************* -------------------------------------------------------------------------------- This email may contain confidential and privileged material for the sole use of the intended recipient. If you are not the intended recipient, please contact the sender and delete all copies. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]