Don't ask where this came from but was sorta bored... The command is perl bottles.pl <number of bottles>

Now the code:
#!/usr/bin/perl -w # "99 Bottles of Beer On The Wall" # Speaking version use strict; use Win32::OLE; my $voice; $voice = Win32::OLE->new("Speech.VoiceText") or die("TTS failed"); $voice->Register("", "$0"); $voice->{Enabled} = 1; $voice->{Speed}=150; my $b=shift; $b = $b + 1; main(); exit(); sub nl { print $/; } sub main{ my $a='onn the wall'; my $c="bottles of beer"; while (($b--)>1) { if ($b == 1) { $c="bottle of beer"; } talk("$b $c $a, $b $c"); talk("Take one down, pass it around."); my $tb = $b - 1; if ($tb == 1) { $c="bottle of beer"; } if ($tb == 0) { $c="bottles of beer"; } talk("$tb $c $a!"); nl(); } } sub talk{ my $line = shift; print $line,$/; $voice->Speak($line, 1); while ($voice->IsSpeaking()) { sleep 1; } }
This is code I got from Mr. Muskrat and from the 99 Bottles Of Beer (can't we do better). Gees I was bored....


-----------------------
Billy S.
Slinar Hardtail - Hand of Dane
Datal Ephialtes - Guildless
RallosZek.Net Admin/WebMaster

perl -le '$cat = "cat"; if ($cat =~ /\143\x61\x74/) { print "Its a cat +!\n"; } else { print "Thats a dog\n"; }'

Replies are listed 'Best First'.
Re: Perl Sings 99 Bottles of Beer On the Wall
by zentara (Cardinal) on Feb 20, 2003 at 13:21 UTC
    Although not perl generated; if you want to hear a "realistic" computer generated vocal, check out this mp3 from the Flinger project. Frere Jacques