[bcn-pm] pregunta: unio de dues cadenes de caracters

Joaquin Ferrero explorer a joaquinferrero.com
dll set 21 06:48:36 PDT 2009


Albert Vilella escribió:
> 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?
> 

Quizás así:

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;

my $seq1 = "--- --- GAA --- GGA";
my $seq2 = "AAC TGG --- --- ---";

print "[$seq1]\n";
print "[$seq2]\n";

(my $guion= $seq1 | $seq2) =~ s/[^- ]/chr 0x40/ge;

print "[$guion]\n";

$seq1 =~ s/-/chr 0x0/ge;
$seq2 =~ s/-/chr 0x0/ge;

print "[$seq1]\n";
print "[$seq2]\n";

my $seq = $seq1 | $seq2 | $guion;

print "[$seq]\n";

__END__

Hummm... 3 expresiones regulares y 3 operaciones lógicas...

No es muy elegante :(


-- 
JoaquinFerrero.com                          Linux User #109802


Més informació sobre la llista de correu Barcelona-pm