Front page | perl.beginners |
Postings from July 2012
Array elements
Thread Next
From:
Yuma More
Date:
July 2, 2012 06:10
Subject:
Array elements
Message ID:
CACc4NVwdpeh9nipecm=gDBR5OpuY1hvSDJAW09+iMwjLLegyUg@mail.gmail.com
Hi there:
I am very new in Perl and I am trying to write a script to search for
similar text in two different files, If it founds a match, it should out
put the whole line from the second file in a third file.
Let say that my first file (F1) has a list of some samples like
>Cortezaaerea23489284
>Cortezaterreste0714857
And the second file (F2) has information about all my universe of samples
>Cortezaaerea23489284
QIUEFQIFNIQAONDAIFIQHFAIFAUIFNUAINAHDUFUDHJAHFUAHFUAFYAUFAUHADUHAUFHAUHFUAHUAHFUAUFAUFHAUFHAUFHUAHFUDAHFUAFUAI
>Cortezaterreste0918347
QIUEFQIFNIQAONDAIFIQHFAIFAUIFNUAINAHDUFUDHJAHFUAHFUAFYAUFAUHADUHAUFHAUHFUAHUAHFUAUFAUFHAUFHAUFHUAHFUDAHFUAFUAI
>Cortezaterreste09899897
IADUFIAJIOADFIOAMCIADFAIUFIAUFIOAUFDIOAUFAIUFAIIUFIAUFIDAUFIAIAUFIAUFIAUFIOAUFIOAUDOIFAUIODUAIOFUAIOFUAIUFOIAUFIAOUFDOIAU
>Cortezaaerea234789048
IADUFIAJIOADFIOAMCIADFAIUFIAUFIOAUFDIOAUFAIUFAIIUFIAUFIDAUFIAIAUFIAUFIAUFIOAUFIOAUDOIFAUIODUAIOFUAIOFUAIUFOIAUFIAOUFDOIAU
>Cortezaterreste0714857
IADUFIAJIOADFIOAMCIADFAIUFIAUFIOAUFDIOAUFAIUFAIIUFIAUFIDAUFIAIAUFIAUFIAUFIOAUFIOAUDOIFAUIODUAIOFUAIOFUAIUFOIAUFIAOUFDOIAU
The output for this example should be like this
>Cortezaaerea23489284
QIUEFQIFNIQAONDAIFIQHFAIFAUIFNUAINAHDUFUDHJAHFUAHFUAFYAUFAUHADUHAUFHAUHFUAHUAHFUAUFAUFHAUFHAUFHUAHFUDAHFUAFUAI
>Cortezaterreste0714857
IADUFIAJIOADFIOAMCIADFAIUFIAUFIOAUFDIOAUFAIUFAIIUFIAUFIDAUFIAIAUFIAUFIAUFIOAUFIOAUDOIFAUIODUAIOFUAIOFUAIUFOIAUFIAOUFDOIAU
My script is as follows, it work partially but always just with the last
element in file 1. Could anyone help me to improve it?
open (A,"C:/F1.txt");
print "openA\n";
open (B,"C:/F2.txt");
print "openB\n";
open (OUT,">>C:/R1.txt");
my @arr=<A>;
close (A);
my $Names;
while ($line = <B>){
print "$Names";@fields = split (/\t/,$line);
our $Seq = "$fields[0]\t$fields[1]";
our $Label = "$fields[0]";
foreach $Names (@arr){
# when I try to print “$Names” here; it print each element of the array.
#but when I try the next comparison
if ($Names eq $Label){
print OUT "$Seq";
#it just identify the last element of the array
}
}
}
close (B);
close (OUT);
The scrip run but the output file just contains one “Seq” instead of two. I
try to print on the screen all the steps, and apparently the only problem
is the comparison
if ($Names eq $Label){
print OUT "$Seq";.
I check other post with similar problem but I just can not understand where
is the error.
Thanks on advances
Yuma More
Thread Next
-
Array elements
by Yuma More