Una posible version mejorada de este script para hacer ascii art desde una palabra.
El codigo
#!usr/bin/perl
#ASCII Art 0.2
#Coded By Doddy H
#
#http://search.cpan.org/~lory/Text-Banner-1.00/Banner.pm
#
use Text::Banner;
use Time::HiRes "usleep";
my $start = Text::Banner->new;
sub head {
my @logo = (
"#=============================================#", "\n",
"# ASCII Art 0.2 #", "\n",
"#---------------------------------------------#", "\n",
"# Written By Doddy H #", "\n",
"# Email: lepuke[at]hotmail[com] #", "\n",
"# Website: doddyhackman.webcindario.com #", "\n",
"#---------------------------------------------#", "\n",
"# The End ? #", "\n",
"#=============================================#", "\n"
);
marquesina(@logo);
}
head();
chomp( my $text = <stdin> );
chomp( my $fill = <stdin> );
print "\n\n\n" . artnow
( $text, $fill ) . "\n";
copyright();
sub artnow {
$start->set( $_[0] );
$start->fill( $_[1] );
}
sub marquesina {
#Effect based in the exploits by Jafer Al Zidjali
my @logo = @_;
my $car = "|";
for my $uno (@logo) {
for my $dos ( split //, $uno ) {
$|++;
if ( $car eq "|" ) {
mostrar( "\b" . $dos . $car, "/" );
}
elsif ( $car eq "/" ) {
mostrar( "\b" . $dos . $car, "-" );
}
elsif ( $car eq "-" ) {
mostrar( "\b" . $dos . $car, "\\" );
}
else {
mostrar( "\b" . $dos . $car, "|" );
}
usleep(40_000);
}
}
sub mostrar {
$car = $_[1];
}
}
sub copyright {
marquesina("-- == (C) Doddy Hackman 2012 == --");
<stdin>;
}
#The End ?
Un ejemplo de uso
r00t ~ # art2.pl
#=============================================#
# ASCII Art 0.2 #
#---------------------------------------------#
# Written By Doddy H #
# Email: lepuke[at]hotmail[com] #
# Website: doddyhackman.webcindario.com #
#---------------------------------------------#
# The End ? #
#=============================================#
[+] Text : hacked
[+] Fill : #
# # ## #### # # ###### #####
# # # # # # # # # # #
###### # # # #### ##### # #
# # ###### # # # # # #
# # # # # # # # # # #
# # # # #### # # ###### #####
-- == (C) Doddy Hackman 2012 == --