--- branches/biomed/parse_format.pm 2004/09/21 16:40:46 457 +++ branches/biomed/parse_format.pm 2004/09/21 16:53:44 458 @@ -56,7 +56,7 @@ my $f = $format; my $eval; - $eval = $1 if ($f =~ s/^eval{([^}]+)}//); + $eval = $1 if ($f =~ s/^eval{([^}]+?)}//); if ($f =~ s/^([^\d]+)//) { if ($f) { # there is more to parse @@ -163,15 +163,17 @@ sub fld2str { my ($func,$row,$f,$sf,$i) = @_; #print STDERR "## in fld2str\n"; - my $tmp = $codepage->convert(&$func($row,$f,$sf,$i)) || ''; + my $tmp = $codepage->convert(&$func($row,$f,$sf,$i)) || $codepage->convert(&$func($row,$f,$sf,0)) || ''; return "'$tmp'"; } $eval =~ s/v(\d+)\^(\w*)/fld2str($func,$row,$1,$2,$i)/eg; #print STDERR "## eval: $eval\n"; if (eval "$eval") { + die "eval error: eval{$eval}: $@" if ($@); return ($swish,$display); } else { + die "eval error: eval{$eval}: $@" if ($@); return (undef,undef); } }