generate_ps generate_pdf do_print
csv_from_fixed
ocr_image
+ bytes_substr
+ money_pretty
);
$DEBUG = 0;
push @to, $options{bcc} if defined($options{bcc});
local $@; # just in case
-# eval { sendmail($message, { transport => $transport,
-# from => $from,
-# to => \@to }) };
+ eval { sendmail($message, { transport => $transport,
+ from => $from,
+ to => \@to }) };
my $error = '';
if(ref($@) and $@->isa('Email::Sender::Failure')) {
}
return if -e "$file.dvi" && -s "$file.dvi";
- die "pslatex $file.tex failed; see $file.log for details?\n";
+ die "pslatex $file.tex failed, see $file.log for details?\n";
}
@lines;
}
+=item bytes_substr STRING, OFFSET[, LENGTH[, REPLACEMENT] ]
+
+A replacement for "substr" that counts raw bytes rather than logical
+characters. Unlike "bytes::substr", will suppress fragmented UTF-8 characters
+rather than output them. Unlike real "substr", is not an lvalue.
+
+=cut
+
+sub bytes_substr {
+ my ($string, $offset, $length, $repl) = @_;
+ my $bytes = substr(
+ Encode::encode('utf8', $string),
+ $offset,
+ $length,
+ Encode::encode('utf8', $repl)
+ );
+ my $chk = $DEBUG ? Encode::FB_WARN : Encode::FB_QUIET;
+ return Encode::decode('utf8', $bytes, $chk);
+}
+
+=item money_pretty
+
+Accepts a postive or negative numerical value.
+Returns amount formatted for display,
+including money character.
+
+=cut
+
+sub money_pretty {
+ my $amount = shift;
+ my $money_char = $conf->{'money_char'} || '$';
+ $amount = sprintf("%0.2f",$amount);
+ $amount =~ s/^(-?)/$1$money_char/;
+ return $amount;
+}
+
=back
=head1 BUGS