use Time::HiRes qw/sleep/; $|++; my $str = "Hello, world!"; for my $c (split //, $str) { for my $z (32 .. ord $c) { print chr($z), "\b"; sleep 0.05; } print $c; }; print "\n";