1 / 13

ESERCIZIO

Versione compatta. ESERCIZIO. Esercizio. Leggere delle sequenze di DNA (una per riga, a partire da inizio riga) e stampare solo le sequenze lunghe più di 20 basi. Versione compatta. ESERCIZIO.

feryal
Télécharger la présentation

ESERCIZIO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Versione compatta ESERCIZIO • Esercizio. Leggere delle sequenze di DNA (una per riga, a partire da inizio riga) e stampare solo le sequenze lunghe più di 20 basi. BIOINFO3 - Lezione 26

  2. Versione compatta ESERCIZIO • Esercizio. Leggere in redirezione un file di sequenze di DNA (una per riga, a partire da inizio riga) e stampare la lunghezza minima, massima e media delle sequenze. BIOINFO3 - Lezione 26

  3. DEBUGGER • Il Perl offre la possibilità di osservare passo per passo l’esecuzione dei propri programmi per verificarne la correttezza e scoprirne eventuali errori “di progettazione”. Si tratta di richiederne l’esecuzione mediante un DEBUGGER • Il debugger si può attivare in due modi diversi: • perl –d nomeprogramma • aggiungendo nella prima riga del programma (quella con #!/usr/bin/perl) l’opzione -d • Una volta all’interno del debugger si possono usare i comandi h help-per vedere l’elenco dei comandi q quit-per uscire dal debugger s step-per eseguire l’istruzione corrente (basta darlo la prima volta, per poi proseguire con il tasto di INVIO) p print-per stampare il valore di una variabile BIOINFO3 - Lezione 26

  4. programma STDOUT STDIN file-output file-input OPERAZIONI SUI FILE • Perl permette di leggere o scrivere direttamente su un file, anche senza utilizzare la redirezione. • Abbiamo visto che la redirezione opera al di fuori del programma cambiandone l’input e/o l’output e che ciò è completamente trasparente al programma il quale crede comunque di leggere da STDIN e scrivere su STDOUT. • programma <file-input >file-output BIOINFO3 - Lezione 26

  5. HANDLE • STDIN e STDOUT sono delle handle, cioè delle variabili particolari (il cui nome non inizia per $) che fanno riferimento ad un file. Nelle operazioni di input di una riga < > e di print normalmente si specifica l’handle con cui effettuare l’operazione. • <HANDLE1> input dal file associato all’handle HANDLE1 • print HANDLE2 “…”; output sul file associato all’handle HANDLE2 • N.B. HANDLE1 e HANDLE2 indicano 2 nomi generici di handle ad as. I, O, A, PIPPO, FILE_INPUT, FILE_OUTPUT • Se non è specificata alcuna handle (come abbiamo sempre fatto sinora!) l’input avviene da STDIN e l’output su STDOUT < > è equivalente a <STDIN> print “…”; è equivalente a print STDOUT “…..”; BIOINFO3 - Lezione 26

  6. HANDLE • Il seguente schema esemplifica in generale gli input e output di un programma file1 HANDLE1 programma STDOUT STDIN ? ? HANDLE2 file-output file-input file2 BIOINFO3 - Lezione 26

  7. APERTURA DEL FILE • Per poter scrivere o leggere un file è innanzitutto necessario aprirlo ed associarlo ad una handle. Dopodichè in ogni operazione di input o print relativa a quel file si dovrà fare riferimento a quella handle. • open (I,”pippo”); • open (I,”<pippo”); • Apre il file di nome ‘pippo’ in lettura, associandolo alla handle di nome I. Se il file non esiste l’istruzione restituisce il valore falso (0) • open (O,”>pluto”); • Apre il file di nome ‘pluto’ in scrittura, associandolo alla handle di nome O. Se il file non esiste viene creato, se esiste già esso viene sovrascritto • open (A,”>>topolino”); • Apre il file di nome ‘topolino’ in scrittura, associandolo alla handle di nome A. Se il file non esiste viene creato, se esiste già lo si scriverà in coda alla parte già esistente BIOINFO3 - Lezione 26

  8. APERTURA DEL FILE • Supponiamo di avere eseguito le tre istruzioni open: • open (I,”<pippo”); • open (O,”>pluto”); • open (A,”>>topolino”); • A questo punto è possibile: • Leggere dal file “pippo” usando la handle I • <I> • Scrivere sul file “pluto” (svuotato, se già esistente) • print O “………”; • Scrivere sul file “topolino” (in coda al file) • print A “………”; programma I O A pippo topolino pluto BIOINFO3 - Lezione 26

  9. OUTPUT • Esempi di istruzioni print su differenti handle. Notare l’effetto dei due differenti tipi di open in scrittura sui file nomi1 e nomi2 PRIMA DOPO BIOINFO3 - Lezione 26

  10. INPUT • Esempio. • Programma che riceve come argomento (nella linea di comando) il nome del file da aprire. Se il file esiste ne legge le righe e le stampa. Notare l’or (||). Solo se falsa la open (ovvero file non apribile: non esiste o non si ha il diritto di leggerlo) si esegue il comando die Vedremo ora alcuni esempi di esecuzione BIOINFO3 - Lezione 26

  11. INPUT • Esempi di esecuzione. • Nel primo caso l’array @ARGV è vuoto (nessun argomento). • Quindi @ARGV in un contesto scalare (@ARGV!=1) vale 0 e @ARGV!=1 è falsa. Viene eseguita subito l’istruzione die che fa terminare il programma E’ chiaro il concetto di contesto scalare o contesto array? Ad esempio: @a+1 @a==1 @b=@a @a>0 ($a,@b)=@a ($a,$b)=@a BIOINFO3 - Lezione 26

  12. INPUT • Esempi di esecuzione. • Nel secondo caso si passa un solo argomento: “nomi”. • Quindi @ARGV=(“nomi”) e @ARGV in un contesto scalare ora vale 1. Il die non è eseguito perché la condizione dell’if ora è falsa • $file=$ARGV[0]=“nomi” • Si apre il file “nomi” ($file=“nomi”) in lettura associandolo alla handle F Si iniziano a leggere le righe del file “nomi”. Nel primo ciclo $r=“Marta\n”; Nel secondo $r=“Anna\n”; ……. Fatti 6 cicli $r=<F> diventa falso perché arrivati a fine file BIOINFO3 - Lezione 26

  13. RIEPILOGO • Debugger • Input e output su file BIOINFO3 - Lezione 26

More Related