my $prefix = shift; my $input = shift; my $file = $prefix . ".txt"; if (-e $file) { print STDERR "$file already exists, deleting previous version\n"; `rm -f $file`; } my $debug=0; #Variabile di debug. Vale 1 in fase di debug, si usa per my %seen = (); my @global_els = (); my @row_els = (); my %score_of = (); my $row_el; my $gram; my $col_el; my $score_of; my $score; my $global_el; open INPUT,$input; while(){ chomp; ($row_el,$gram,$col_el,$score) = split "[\t ]+",$_; $global_el=$gram."_".$col_el; if (!($seen{"glob"}{$global_el}++)) { push @global_els,$global_el; } if (!$seen{"row"}{$row_el}++) { push @row_els,$row_el; } $score_of{$row_el}{$global_el} = $score; if($debug){ print "Check:".$row_el."=>".$global_el."=>".$score; } } close INPUT; #@global_els = (); #@row_els = (); open MATRIX,">$file"; #my $score_b=$score_of{$row_el}{$global_el}; foreach $row_el (@row_els) { print MATRIX "\t",$row_el; foreach $global_el (@global_els) { print MATRIX "\t",$global_el; print MATRIX ",",$score_of{$row_el}{$global_el}; } print MATRIX "\n"; } close MATRIX;