¿Cómo puedo iniciar una consola interactiva para Perl?

Resuelto ibz asked hace 15 años • 24 respuestas

¿Cómo puedo iniciar una consola interactiva para Perl, similar al irbcomando para Ruby o pythonPython?

ibz avatar Sep 16 '08 22:09 ibz
Aceptado

Puedes usar el depurador de Perl en un programa trivial, así:

perl -de1

Este comando iniciará el depurador de Perl ( -d) en la expresión 1( -e1), porque el depurador quiere depurar algo (normalmente un archivo que contiene código Perl). perl -d -e 1El comando también podría escribirse .

Alternativamente, existe la aplicación Perl Console de Alexis Sukrieh , pero no la he usado.

Daniel Papasian avatar Sep 16 '2008 15:09 Daniel Papasian

Matt Trout no solo escribió un artículo sobre un REPL, sino que también escribió uno - Devel::REPL

Lo he usado un poco y funciona bastante bien y está en desarrollo activo.

Por cierto, no tengo idea de por qué alguien modificó a la persona que mencionó el uso de "perl -e" desde la consola. Esto no es realmente un REPL, es cierto, pero es increíblemente útil y lo uso todo el tiempo.

Dave Rolsky avatar Sep 16 '2008 16:09 Dave Rolsky

Si quieres historial, usa rlwrap . Este podría ser tu ~/bin/ipspor ejemplo:

#!/bin/sh
echo 'This is Interactive Perl shell'
rlwrap -A -pgreen -S"perl> " perl -wnE'say eval()//$@'

Y así es como se ve:

$ ips
This is Interactive Perl shell
perl> 2**128
3.40282366920938e+38
perl> 
Ján Sáreník avatar Apr 03 '2014 14:04 Ján Sáreník

Escribí un script que llamo "psh":

#! /usr/bin/perl

while (<>) {
  chomp;
  my $result = eval;
  print "$_ = $result\n";
}

Lo que escribas, se evalúa en Perl:

> gmtime(2**30)
gmtime(2**30) = Sat Jan 10 13:37:04 2004

> $x = 'foo'
$x = 'foo' = foo

> $x =~ s/o/a/g
$x =~ s/o/a/g = 2

> $x
$x = faa
raldi avatar Sep 16 '2008 19:09 raldi