<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18852"></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT color=#0000ff size=2 face=Arial><SPAN
class=823054016-08112009>Ho rimesso un po' di escape ("\") che
erano spariti nella mail dall'ottimo esempio di Oha e aggiunta l'apertura
dei file .xxx (ovviamente da modificare con il suffisso giusto), tanto perchè
Paola abbia la pappa pronta :) </SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT color=#0000ff size=2 face=Arial><SPAN
class=823054016-08112009>Un po' di commenti non fanno mai male
:)</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT color=#0000ff size=2 face=Arial><SPAN
class=823054016-08112009></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT color=#0000ff size=2 face=Arial><SPAN
class=823054016-08112009>MaX</SPAN></FONT></DIV><FONT color=#0000ff size=2
face="Courier New"><SPAN class=823054016-08112009>
<DIV dir=ltr align=left><FONT face=Arial></FONT><BR>use strict;<BR>use
warnings;</DIV>
<DIV>use Data::Dumper;</DIV>
<DIV dir=ltr align=left>my %data;<BR>my %cols;<BR>while(<*.xxx>) #
ottengo la lista dei file con suffisso .xxx<BR>{<BR> open "FILE", $_ or
die; # Apro il file o morte!<BR> while
(<FILE>) #
lo leggo<BR> {<BR> chomp;<BR> my @cols = split
/\s+/; # separo le colonne<BR> my $first = shift @cols or
next; # tengo la prima colonna<BR> my $second = shift
@cols; # e la
seconda<BR> my %other = map { /^([^(]+)\((\d+)\)\*?/; $cols{$2}++;
($2,$1); } @cols; # il resto lo metto nell'hash %other ad esempio
H380(138) diventa $other{138} = H380<BR> $other{__perc} =
$second; # metto
in %other anche il valore della seconda colonna<BR>
$data{$first} = \%other; # metto
in nell'hash $data l'hash %other<BR> }<BR>}</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff size=2 face="Courier New"></FONT> </DIV>
<DIV dir=ltr align=left><FONT color=#0000ff size=2 face="Courier New"><SPAN
class=823054016-08112009>foreach my $k (sort keys %data)
# $k sono tutti i valori della prima colonna<BR>{<BR> my $other =
$data{$k}; #
recupero l'hash<BR> print $k, "\t", $other->{__perc}, "\t"; #
stampo l'intestazione della riga<BR> foreach my $c (sort { $a
<=> $b } keys %cols) { # itero sulle
colonne (ordinate)<BR> my $v =
$other->{$c}; # prendo la
colonna c<BR> print $v ? "$v($c)\t" :
"- \t"; # e ne stampo il valore
o degli spazi bianchi<BR> }<BR> print
"\n"; #
nuova riga<BR>}</SPAN></FONT></DIV><BR></BODY></HTML>