[bcn-pm] pregunta: unio de dues cadenes de caracters
Bruno
brunorc a gmail.com
dll set 21 11:36:34 PDT 2009
Hola,
use strict;
use warnings;
my $seq1 = '--- --- GAA --- GGA';
my $seq2 = 'AAC TGG --- --- ---';
{
my @seq2 = split //, $seq2;
my $idx = -1;
my $result = join '', ( map { $idx++; $_ eq '-' ? $seq2[$idx] : $_
} split //, $seq1 );
print "$result\n";
}
{
my @seq1 = split //, $seq1;
my @seq2 = split //, $seq2;
my $result = join '', ( map { $seq1[$_] eq '-' ? $seq2[$_] :
$seq1[$_] } 0 .. $#seq1 );
print "$result\n";
}
El segundo me gusta mas ;-)
2009/9/21 Jordi Delgado <jdelgado at lsi.upc.edu>:
> Hola,
>
> Y esto? Que tal?
>
> #----------------------------------------------
> $seq1 = "--- --- GAA --- GGA";
> $seq2 = "AAC TGG --- --- ---";
> @seq2 = split(//,$seq2);
>
> ($union = $seq1) =~ s/(.)/($1 eq "-") ? $seq2[$-[0]]: $1/ge;
> #----------------------------------------------
>
> El resultado es la string en $union
> Es esto "Modern Perl"?? ;-))
>
> Salud!
>
> Jordi
>
>
>
>> Hola,
>>
>> Estic buscant una manera elegant de fer la unió de dues cadenes de
>> caràcters. Per exemple:
>>
>> $seq1 = "--- --- GAA --- GGA";
>> $seq2 = "AAC TGG --- --- ---";
>>
>> La norma és que es mantingui el "-" quan ambdues ho tenen, però s'esculli la
>> lletra quan una contingui lletra:
>>
>> $unio = "AAC TGG GAA --- GGA";
>>
>> Potser mitjançant una expressió regular?
>>
>> Gràcies,
>>
>> Albert.
>
>> _______________________________________________
>> llista dels Barcelona-pm
>> Barcelona-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/barcelona-pm
>> BCN Perl Mongers: http://barcelona.pm.org
> _______________________________________________
> llista dels Barcelona-pm
> Barcelona-pm at pm.org
> http://mail.pm.org/mailman/listinfo/barcelona-pm
> BCN Perl Mongers: http://barcelona.pm.org
Més informació sobre la llista de correu Barcelona-pm