-+  Associazione
-+  Documenti
-+  Eventi
-+  Community
-+  Blog
-+  Link

Ottobre 2013

Dom Lun Mar Mer Gio Ven Sab
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Cerca






 

« E' uscito SpamAssassin 3.0 | Home | Smart::Comments »

Una shell Perl interattiva
27.09.04

Molti linguaggi (Python, Tcl, molti Scheme e Lisp, Prolog, *ML, etc etc) hanno un modo semplice di ottenere un ambiente interattivo in cui provare dei comandi, mentre Perl sembra non averne.

Molti si mettono a scrivere dei cicli REP (Read - Execute - Print), e finiscono per infrenarsi orrendamente con lo scope di dichiarazioni dentro eval STRING, e il codice che sembrava necessitare di solo un paio di righe finisce per diventare enorme.

In effetti esiste un sistema molto più semplice: basta usare il debugger!

$ perl -de1

Loading DB routines from perl5db.pl version 1.22
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1):   1
  DB<1> 

e a questo punto possiamo eseguire tutti i comandi che vogliamo. La linea di comando che ho usato si scompone in:

  • -d attiva il debugger
  • -e fornisce lo script sulla linea di comando, invece che leggerlo da file
  • 1 è lo script da eseguire, giusto perché bisogna pur dargli qualcosa

Se poi volete fare le cose complicate, potete sempre pre-caricare dei moduli:

perl -MDBI -MCGI -de1

Buona sperimentazione!

Inviato da dakkar il 27.09.04 12:00
Ti è piaciuto questo articolo? Iscriviti al feed!

Inviato da kral il 27.09.04 18:58

Purtroppo su win32 con Active State, non compare un prompt ma lancia direttamente l'interfaccia per il debug (l'Active State PerlDebugger). Forse bisogna cazzargli (termine tecnico :-D) qualche altro parametro.

Inviato da jontk il 27.09.04 21:52

Sto usando Perl 5.8.4 Build 810 di ActiveState e ottengo il prompt indicato da dakkar differente solo nella versione (1.25), riuscendo ad eseguire comandi anche con i moduli precaricati.
Non sono molto di aiuto, ma magari evito la ricerca di particolari parametri. :)

Inviato da kral il 01.10.04 11:01

Uso anch'io la stessa build. Cmq ho capito l'inghippo... probabilmente tu non hai il Perl Dev Kit (sempre dell'ActiveState) installato. Installato quello, debugger del Dev Kit si "appropria" del parametro -d, afaik.

Inviato da jontk il 01.10.04 16:25

Confermo, non l'ho installato.










Devo ricordare i dati personali?






D:
Sull'autore...
D:
La ML di Perl.it
Iscriviti! mongers@lists.perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
D:
Annunci Google