[FoLUG] perl: operazioni con gli array
ivan
i.f-ml01@darthxiong.net
Lun 22 Gen 2007 09:40:44 CET
On 2007-01-22 03:50, simona bazzocchi wrote:
> Salve ho un array cosi' fatto: (ogni elemento e' un su una linea diversa, non sempre il numero di righe e' uguale tra una Query= e un'altra Query=)
>
> Query=hsa1
> Identities90
> Length99
> Score98
> Strand9
> Query=hsa2
> ...
>
> Vorrei trasformare un array siffatto con un altro dove ongni Query= sta su una riga e tutto il resto sulla seconda, tipo:
> Query=hsa
> Identities90 Length99 Score98 Strand9
> Query=hsa94
> Identities90 Length99 Score98 Strand9
>
> Non vorrei usare aperture di file perche' lo devo mettere su di una pagina html,Ho provato con push ma ho dei problemi.
> Grazie
>
> Grazie
se il numero di elementi per query e' uguale ( es., Query= e' sempre
negli indici multipli di 5 ) puoi fare:
----
@arrayoriginale = qw( Q0 1 2 3 4 Q1 a b c d Q2 1 2 3 4 Q4 a b c d );
for ( $i = 0 ; $i <= ( $#arrayoriginale/5 ) ; $i++ ) {
$nuovoarray[2*$i] = $arrayoriginale[5*$i];
$nuovoarray[2*$i+1] = join " ", ( @arrayoriginale[5*$i+1 .. 5*$i+4] );
}
{ local $"="]\n["; print "[@nuovoarray]\n" }
----
non e' proprio il max dell' efficienza computazionale, ma e' leggibile.
--
(@_ Ivan Fabris, S. Sofia (FC,it) PowerPC e Debian GNU/linux SID _*)
//\ www.folug.org pgp key @ www.keyserver.net /\\
V_/_ lunga vita e prosperita' _\_V
Maggiori informazioni sulla lista
FoLUG