<!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&nbsp;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 :)&nbsp;</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>&nbsp;</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(&lt;*.xxx&gt;)&nbsp; # 
ottengo la lista dei file con suffisso .xxx<BR>{<BR>&nbsp; open "FILE", $_ or 
die;&nbsp;&nbsp;&nbsp;# Apro il file o morte!<BR>&nbsp; while 
(&lt;FILE&gt;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 
lo leggo<BR>&nbsp; {<BR>&nbsp;&nbsp; chomp;<BR>&nbsp;&nbsp; my @cols = split 
/\s+/;&nbsp; # separo le colonne<BR>&nbsp;&nbsp; my $first = shift @cols or 
next;&nbsp;# tengo la prima colonna<BR>&nbsp;&nbsp; my $second = shift 
@cols;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# e la 
seconda<BR>&nbsp;&nbsp; my %other = map { /^([^(]+)\((\d+)\)\*?/; $cols{$2}++; 
($2,$1); } @cols; # il resto lo metto&nbsp;nell'hash %other&nbsp;ad esempio 
H380(138) diventa $other{138} =&nbsp;H380<BR>&nbsp;&nbsp; $other{__perc} = 
$second;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;metto 
in&nbsp;%other anche il valore della seconda colonna<BR>&nbsp;&nbsp; 
$data{$first} = \%other;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # metto 
in nell'hash $data&nbsp;l'hash&nbsp;%other<BR>&nbsp; }<BR>}</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff size=2 face="Courier New"></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT color=#0000ff size=2 face="Courier New"><SPAN 
class=823054016-08112009>foreach my $k (sort keys %data)&nbsp;&nbsp;&nbsp;&nbsp; 
# $k sono tutti i valori della prima colonna<BR>{<BR>&nbsp;&nbsp; my $other = 
$data{$k};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 
recupero l'hash<BR>&nbsp;&nbsp; print $k, "\t", $other-&gt;{__perc}, "\t"; # 
stampo l'intestazione della riga<BR>&nbsp;&nbsp; foreach my $c (sort { $a 
&lt;=&gt; $b } keys %cols) { # itero sulle 
colonne&nbsp;(ordinate)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $v = 
$other-&gt;{$c};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# prendo la 
colonna&nbsp;c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $v ? "$v($c)\t" : 
"-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \t"; # e ne stampo il&nbsp;valore 
o&nbsp;degli spazi bianchi<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; print 
"\n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 
nuova riga<BR>}</SPAN></FONT></DIV><BR></BODY></HTML>