#tested - works for me (win2k) use Win32::OLE qw( EVENTS ); my $lovespeak = new Win32::OLE( "{EEE78591-FE22-11D0-8BEF-0060081841DE}" ) or die "$!"; my $self = 'Monk'; # you my $chicks_name = 'Chick'; # her my @cheese = ( "hey $chicks_name\n\n I hope everythings going well today.\n I just wanted to drop you a line.\n\nLove always,\n\t$self", "Baby,\n I just wanted you to know how much I love you. Youre great!\n\nLove,\n\t$self", "I've been thinking about you all day. I can't wait to come home to you.\n talk to ya later,\n\t$self", ); my @subjects = ( "hey babe...", "just wanted to say hi...", "oh I love you...", ); my $random = int(rand($#subjects)); my $say = $subjects[$random]; $random = int(rand($#cheese)); $say .= $cheese[$random]; $lovespeak->Speak($say); while( $lovespeak->{Speaking} ){ Win32::OLE->SpinMessageLoop(); Win32::Sleep( 100 ); }