|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2005
Messaggi: 65
|
[perl] pattern matching problem
ciao a tutti,
non frequento molto il forum, ma vorrei chiedervi un aiuto da programmatore amatoriale. Ho fatto un piccolo script per esigenze lavorative. Il programma dovrebbe ricevere 2 input, e guardare se trova le variabili di uno nell'altro. Non so per quale motivo, ma non riesce a matchare correttamente, nel senso che mi dice che qualsiasi cosa e` uguale a qualsiasi cosa.. Potete dare un'occhiata? |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jan 2005
Messaggi: 65
|
#!/usr/bin/perl
print "insert homologene.data.txt matrix path\n"; $IN=<STDIN>; open(wee, "$IN"); chop($IN); chop($IN); chop($IN); chop($IN); $a=<wee>; while($a ne ""){ @array=split /\t/,$a; # print "@array \n"; push @array2d,[@array]; $a=<wee>; chop($a); } #$count=0; print "$#array2d\n"; #for $row (@array2d){ # $count++; # print "@$row\n"; # } #print "$count\n"; print("insert input file path\n"); $IN2=<STDIN>; open(wee2, "$IN2"); chop($IN2); chop($IN2); chop($IN2); chop($IN2); $b=<wee2>; while($b ne ""){ push @input, $b; $b=<wee2>; } print "@input \n"; foreach (@input){ chop($_); print "$_\n"; $c=0; while($c <= $#array2d){ #print "$array2d[$c][3], ciao\t $c\n "; if($_ =~ /${$array2d[$c][3]}/x){ print "$array2d[$c][3]\t $_\n "; push @out, $array2d[$c][0]; # print "$_ \t ciao $c\n "; # $c=$count; } $c++; } } #print "hello, $out[1] \n"; |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jan 2005
Messaggi: 65
|
Se ne avete bisogno posso anche postarvi i file di modello necessari...
Ultima modifica di debris : 31-03-2006 alle 12:49. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
se non sono riservati postali. cos'e' che deve fare esattamente? |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jan 2005
Messaggi: 65
|
ho una lista,
PHLDA1 LOC608832 LOC497668 Hephl1 CDC12 LOC423705 CG3960 LOC485383 MT3 Skil_predicted Txndc11 Plasmodium falciparum 3D7 PFL2290w gene COX8A hypothetical protein LOC480690 LOC628209 mRNA gene KLLA0E04785g CG14414 mRNA gene KLLA0F18568g Map3k10 RGD1307150_predicted LOC610189 PDZRN3 Y61A9LA.10 LOC395520 Phf5a 38967 LOC391051 SH3MD2 ADR086Cp D2Ertd750e Thsd1_predicted SOCS1 Jph2 Theg e devo controllare se gli elementio di questa lista compaiono in questo file ftp://ftp.ncbi.nih.gov/pub/HomoloGen...omologene.data questo e` un test, e la lista viene dal file medesimo, quindi so che ci sono tutti gli elementi! Ultima modifica di debris : 31-03-2006 alle 13:06. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
if($_ =~ /${$array2d[$c][3]}/x){
sei sicuro non sia if($_ =~ /$array2d[$c][3]/x){ come mai usi il pattern matching per fare una semplice uguaglianza tra stringhe? |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Jan 2005
Messaggi: 65
|
beh ormai e` cambiato un po', prima di tutto la X non c'e` piu`, perche` era un errore e pure grossolano,
tu dici che posso fare in maniera diversa? tipo eq? adesso provo! |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Jan 2005
Messaggi: 65
|
beh, e` meglio, prima dceva che tutto era uguale a tutto, adesso nessun elemento passa la condizione! pero provero` ad andare in dettaglio su questo approccio
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:53.