Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Perl Sings 99 Bottles of Beer On the Wall

by LostS (Friar)
on Feb 19, 2003 at 22:29 UTC ( #236856=CUFP: print w/replies, xml ) Need Help??

Don't ask where this came from but was sorta bored... The command is perl <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 (Archbishop) 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

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://236856]
Approved by Mr. Muskrat
Front-paged by ybiC
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2018-04-22 04:05 GMT
Find Nodes?
    Voting Booth?