パールについて質問があります。このファイルの各行には、異なる数の As Ts Gs および Cs が含まれているファイルがあります。ファイルは次のようになります。
ATCGCTGASTGATGCTG
GCCTAGCCCTTAGC
GTTCCATGCCCATAGCCAAATAAA
各行に行番号を追加したい次に、6 文字ごとに \n を挿入し、作成された新しい行のそれぞれに 3 文字ごとに空のスペースを入れます。
出力の例は次のとおりです。
Line NO 1
ATC GCT
GAS TGA
TGC TG
Line NO 2
GCC TAG
CCC TTA
GC
私は以下のコードを思いつきました:
my $count = 0;
my $line;
my $row;
my $split;
open(F, "Data.txt") or die "Can't read file: $!";
open (FH, " > UpDatedData.txt") or die "Can't write new file: $!";
while (my $line = <F>) {
$count ++ ;
$row = join ("\n", ( $line =~ /.{1,6}/gs));
$split = join ("\t", ( $row =~ /.{3}/gs ));
print FH "Line NO\t$count\n$split\n";
}
close F;
close FH;
でも
次の出力が得られます
Line NO 1
ATC GCT
GA STG A
T GCT G
Line NO 2
GCC TAG
CC CTT A
G C
これには、このコード行で \n が文字としてカウントされる何かが必要です
$split = join ("\t", ( $row =~ /.{3}/gs ));
この問題を回避する方法を知っている人はいますか?
どんな助けでも大歓迎です。
前もって感謝します
シネード