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]