REPL per Perl
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.