163 |
sub fld2str { |
sub fld2str { |
164 |
my ($func,$row,$f,$sf,$i) = @_; |
my ($func,$row,$f,$sf,$i) = @_; |
165 |
#print STDERR "## in fld2str\n"; |
#print STDERR "## in fld2str\n"; |
166 |
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)) || ''; |
167 |
return "'$tmp'"; |
return "'$tmp'"; |
168 |
} |
} |
169 |
|
|
170 |
$eval =~ s/v(\d+)\^(\w*)/fld2str($func,$row,$1,$2,$i)/eg; |
$eval =~ s/v(\d+)\^(\w*)/fld2str($func,$row,$1,$2,$i)/eg; |
171 |
#print STDERR "## eval: $eval\n"; |
#print STDERR "## eval: $eval\n"; |
172 |
if (eval "$eval") { |
if (eval "$eval") { |
173 |
|
die "eval error: eval{$eval}: $@" if ($@); |
174 |
return ($swish,$display); |
return ($swish,$display); |
175 |
} else { |
} else { |
176 |
|
die "eval error: eval{$eval}: $@" if ($@); |
177 |
return (undef,undef); |
return (undef,undef); |
178 |
} |
} |
179 |
} |
} |
226 |
} elsif ($format =~ s/^([^A-Z\|]+)(\|[A-Z]{1,2}\|)/$2/) { |
} elsif ($format =~ s/^([^A-Z\|]+)(\|[A-Z]{1,2}\|)/$2/) { |
227 |
$prefix .= $1 if ($display); |
$prefix .= $1 if ($display); |
228 |
} else { |
} else { |
229 |
print STDERR "unparsed format: $format\n"; |
#print STDERR "unparsed format: $format\n"; |
230 |
$prefix .= $format; |
$prefix .= $format; |
231 |
$format = ""; |
$format = ""; |
232 |
} |
} |