#! perl -slw use 5.010; use feature qw[ say state ]; use threads; use threads::shared; #use strict; #use Win32::API::Prototype; use Time::HiRes qw[ time sleep ]; use Benchmark qw[cmpthese]; use Data::Dump qw[ pp ]; ##$Data::Dump::MAX_WIDTH = 200; #use Data::Dumper; use Devel::Size qw[ size total_size]; use List::Util qw[ sum reduce max min maxstr minstr shuffle ]; $| = 1; $" = $, = ' ';#" while( 1 ) { $_code = ''; printf "[%s] Perl> ", $! || $@ || $? || 0; $_code .= until $_code =~ m[;;\s*$]; chomp $_code; system 1, 'cmd /k' and next if $_code =~ m[^!!;;\s*$]s; if( $_code =~ m[^!(.+);;\s*$]s ) { system "cmd.exe /c $1"; $! = ($? << 8); next; } last if $_code =~ m[^(quit|exit|q);;\s*$]; $! = 0; eval { local $ENV{ PERL_SIGNALS } = 'unsafe'; local $SIG{ INT } = sub{die;}; eval $_code }; }