Server IP : 66.235.200.170 / Your IP : 3.139.98.201 Web Server : Apache System : Linux gator4410.hostgator.com 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64 User : bmgxafte ( 1214) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/usr/bin/ |
Upload File : |
#!/usr/bin/perl use strictures 1; use Eval::WithLexicals; use Term::ReadLine; use Data::Dumper; use Getopt::Long; GetOptions( "plugin=s" => \my @plugins ); $SIG{INT} = sub { warn "SIGINT\n" }; { package Data::Dumper; no strict 'vars'; $Terse = $Indent = $Useqq = $Deparse = $Sortkeys = 1; $Quotekeys = 0; } my $eval = @plugins ? Eval::WithLexicals->with_plugins(@plugins)->new : Eval::WithLexicals->new; my $read = Term::ReadLine->new('Perl REPL'); while (1) { my $line = $read->readline('re.pl$ '); exit unless defined $line; my @ret; eval { local $SIG{INT} = sub { die "Caught SIGINT" }; @ret = $eval->eval($line); 1; } or @ret = ("Error!", $@); print Dumper @ret; } __END__ =head1 NAME tinyrepl - Tiny REPL =head1 SYNOPSIS $ tinyrepl re.pl$ "s" x 5 "sssss" re.pl$ exit $ tinyrepl --plugin HintPersistence =head1 DESCRIPTION tinyrepl is a minimal pure-Perl REPL. It is just a small wrapper around L<Eval::WithLexicals>. =head1 OPTIONS =over 4 =item C<--plugin=> Loads a plugin into the REPL. See L<Eval::WithLexicals/with_plugins>. =back =head1 SUPPORT See L<Eval::WithLexicals> for support and contact information. =head1 AUTHORS See L<Eval::WithLexicals> for authors. =head1 COPYRIGHT AND LICENSE See L<Eval::WithLexicals> for the copyright and license. =cut