String perl/match对齐中的字符串对齐

String perl/match对齐中的字符串对齐,string,perl,alignment,String,Perl,Alignment,我有两个字符串$dna1和$dna2。打印连接的两个字符串,然后打印连接字符串末尾的副本上排列的第二个字符串。例如,如果输入 字符串为AAAA和TTTT,打印: AAAATTTT TTTT 这是一个自我锻炼的问题。。不是家庭作业 我试着使用索引 #!/usr/bin/perl-w $a ='AAAAAAAAAATTTTTTTTT'; $b ='TTTTTTTTTT'; print $a,"\n"; print ''x index($a,$b),$b,"\n"; 但是它没有按需要工

我有两个字符串$dna1和$dna2。打印连接的两个字符串,然后打印连接字符串末尾的副本上排列的第二个字符串。例如,如果输入 字符串为AAAA和TTTT,打印:

AAAATTTT
    TTTT 
这是一个自我锻炼的问题。。不是家庭作业

我试着使用索引 #!/usr/bin/perl-w

$a ='AAAAAAAAAATTTTTTTTT';
$b ='TTTTTTTTTT';
print $a,"\n";
print ''x index($a,$b),$b,"\n"; 

但是它没有按需要工作。请帮助检查
索引($a,$b)
返回的内容,然后开始检查。。。也许你应该选择一个
$b
,它实际上在
$a


然后意识到连接10个空字符串实例是一个空字符串,而不是10个空格。

首先检查
索引($a,$b)
返回的内容。。。也许你应该选择一个
$b
,它实际上在
$a


然后意识到连接10个空字符串实例是一个空字符串,而不是10个空格。

这是一个有趣的小练习。我这样做:

perl -lwe'$a="AAAA"; $b="TTTT"; $c = $a.$b; $i = index($c,$b) + length($b); 
          print $c; printf "%${i}s\n", $b;'
AAAAAAATTTT
       TTTT

请注意,一般来说,使用变量名
$a
$c
是一个坏主意,在这里只能接受,因为它是一个单行程序
$a
$b
也是与
排序一起使用的保留变量名。这是一个有趣的小练习。我这样做:

perl -lwe'$a="AAAA"; $b="TTTT"; $c = $a.$b; $i = index($c,$b) + length($b); 
          print $c; printf "%${i}s\n", $b;'
AAAAAAATTTT
       TTTT

请注意,一般来说,使用变量名
$a
$c
是一个坏主意,在这里只能接受,因为它是一个单行程序
$a
$b
也是保留变量名,在文本中与
排序一起使用,您说输入是AAAA和TTTT。在代码中,有aaaaaaaaaaaattttttttt和tttttttt。是哪一个?它是否已连接?在
$a
字符串中有9个T,在
$b
字符串中有10个T。你永远不会在
$a
中找到10个Ts。在你的文本中,你说输入是AAAA和TTTT。在代码中,有aaaaaaaaaaaattttttttt和tttttttt。是哪一个?它是否已连接?在
$a
字符串中有9个T,在
$b
字符串中有10个T。你永远不会在
$a
$i=length($c)中找到10个T会更简单。打印
''x长度($a)
空格会更简单。
$i=length($c)会更简单。打印
''x长度($a)
空格会更简单。