Ok sorry for my habit i include strict and warning when i wrote here!
This is my code and now isn't running!
use strict;
use warnings;
use Data::Dumper;
my $mio2;
my $mio;
my $line;
my $line2;
my $words;
my $words2;
my $i=0;
my %go_accession_hash=();
open (FILE, "/Users/Pabli/Desktop/gene_association.goa_human");
open (FILE2, "/Users/Pabli/Desktop/go3.obo");
while(<FILE>) {
my @array_with_all_fields=split(/\t/);
if ($array_with_all_fields[2] eq "TP53"){
$mio=$array_with_all_fields[4];
open my $out_file, '>>', 'myoutputfilename.txt' or die "$!";
#print "".$mio."\n";
print $out_file $mio; # print to file
}
#print "".$mio."\n";
#}
#%go_accession_hash=($mio,'');
#my @test2= keys %go_accession_hash;
#print "".$test2[0]."\n";
#print "".$mio."\n";
}
open (FILE3, "/Users/Pabli/Documents/workspace/PerlProva/myoutputfilen
+ame.txt");
while($line=<FILE2>){
$words2 = split(" ",$line);
print "$words2[1]\n";
$i=2;
while($line2=<FILE3>){
$i = $i - 1;
if ($i >= 0)
{
$words = split(" ",$line2);
#print $words[0]."\n";
}
$mio2=$words[0];
#print "$words2[1]\n";
#print $words[0]."\n";
}
#print "$words2[1]\n";
#print $words[0]."\n";
#$line= split(/\s+/);
#if ($words2[0] eq "id:") {
#$mio4=$words2[1];
#print $mio4."\n";
# }
#elsif ($words2[0] eq "name:"){
#if ($mio4 == $mio2){
#print "name: ".$words2[1]."\n";
#}
#}
#}
}
close FILE;
close FILE2;
close FILE3;
The error is about "words" and "words2".
The program needs global declaration i think so (i did it at first row) but i don't know the way to do it.
Thanks |