SBSPSS/tools/Perl/bin/PerlSE.pl

38 lines
685 B
Perl
Raw Normal View History

2000-08-29 18:26:01 +02:00
use Win32::OLE::Lite;
sub _eval_init_
{
# internal variables
$_eval_code_ = '';
$_eval_line_ = 0;
$_eval_errline_ = 0;
$_eval_errcode_ = '';
}
sub _eval_
{
$_eval_code_ = $_[0];
$_eval_line_ = $_[1];
eval $_[0];
if(!$@)
{ # no error;
return ;
}
else
{
my $w = $@;
$w =~ s/at \(eval (\d+)\) //;
my $eb=$1; # eval block
$w =~ s/ line (\d+)//;
my $el=$1-1; # line number in eval block
$_eval_errline_ = $_eval_line_+$el;
my @lines = split(/^/m, $_eval_code_);
if($el > 0 ) {
$_eval_errcode_ = $lines[$el-1] . $lines[$el];
} else {
$_eval_errcode_ = $lines[$el] . $lines[$el+1];
}
return $w;
}
}