REPL per Perl


Joe Yates- Pubblicato il15 Ottobre 2009

Uso irb tutti i giorni per interagire con Ruby. Dovendo fare manutenzione su del codice Perl, ne ho sentito la mancanza.

Ho trovato Devel::REPL. Non e' perfetto, ma e' molto meglio di nulla.

Per installarlo in Ubuntu, c'e' il pacchetto libdevel-repl-perl.

Configurazione

Non era subito pronto all'uso dopo l'installazione, pero' c'e' un esempio di script d'avvio che lo lancia benissimo:

$ /usr/share/doc/libdevel-repl-perl/examples/re.pl
$_print "Ciao\n"
Ciao
1
$_exit

Ho creato uno symlink sotto /usr/local/bin per facilitare le cose:

$ sudo ln -s /usr/share/doc/libdevel-repl-perl/examples/re.pl /usr/local/bin/re.pl

Poi, ho creato un file di configurazione per il progetto sul quale stavo lavorando:

$ cat progetto.rc
$_REPL->load_plugin('History');
$_REPL->load_plugin('LexEnv');
$_REPL->load_plugin('Commands');
$_REPL->load_plugin('Completion');
$_REPL->load_plugin('CompletionDriver::Methods');
$_REPL->load_plugin('CompletionDriver::Keywords');
$_REPL->load_plugin('CompletionDriver::Globals');
$_REPL->load_plugin('CompletionDriver::LexEnv');
use My::Class;
My::Class::ConnectDatabase($rhConnection);

Fra i vari plugin, sono quelli di Completion che fanno la differenza. Basta cominciare a scrivere il nome di una classe, clicchi su <TAB> e vedi l'elenco di alternative.

Adesso, scrivendo

$ re.pl --rcfile ./progetto.rc

ho un REPL utilizzabile.