Acme-EyeDrops
view release on metacpan or search on metacpan
demo/gentable.pl view on Meta::CPAN
$C[25] = q#('&'^'?')#;
$C[26] = q#('?'^'%')#;
$C[27] = q#('>'^'%')#;
$C[28] = q#('&'^':')#;
$C[29] = q#('<'^'!')#;
$C[30] = q#('?'^'!')#;
$C[31] = q#('%'^':')#;
$C[32] = q#('{'^'[')#; # space
$C[127] = q#('!'^'^')#;
# Special escaped characters.
$C[92] = q#'\\\\'.'\\\\'#;
$C[34] = q#'\\\\'.'"'#;
$C[36] = q#'\\\\'.'$'#;
$C[64] = q#'\\\\'.'@'#;
$C[123] = q#'\\\\'.'{'#;
$C[125] = q#'\\\\'.'}'#;
# 128..255
# for my $i (128..255) {
# $C[$i] = join('.', q#'\\\\'#,
lib/Acme/EyeDrops.pm view on Meta::CPAN
sub make_banner {
my ($w, $src) = @_;
# Linux /usr/games/banner can be used.
# CPAN Text::Banner will hopefully be enhanced so it can be used too.
my $b_exe = '/usr/games/banner';
-x $b_exe or die "'$b_exe' not available on this platform.";
my $f = $w ? "-w $w" : ""; $src =~ s/\s+/ /g; $src =~ s/ $//;
# Following characters not in /usr/games/banner character set:
# \ [ ] { } < > ^ _ | ~
# Also must escape ' from the shell.
$src =~ tr#_\\[]{}<>^|~'`#-/()()()H!T""#;
my $s = ""; my $len = length($src);
for (my $i = 0; $i < $len; $i += 512) {
my $cmd = "$b_exe $f '" . substr($src, $i, 512) . "'";
$s .= `$cmd`; my $rc = $? >> 8; $rc and die "<$cmd>: rc=$rc";
}
$s =~ s/\s+$/\n/; $s =~ s/ +$//mg;
# Remove as many leading spaces as possible.
my $m = 32000; # regex /^ {$m}/ blows up if $m > 32766
while ($s =~ /^( *)\S/mg) { $m = length($1) if length($1) < $m }
( run in 0.893 second using v1.01-cache-2.11-cpan-c21f80fb71c )