Como aplico a formatação a uma palavra específica em um arquivo docx usando o Win32 :: Ole no Perl?

Por exemplo, meu arquivo docx contém as seguintes frases:

Este é um exemplo de Perl
Este é um exemplo de Python
Este é outro exemplo de Perl

Quero aplicar um estilo arrojado a todas as ocorrências da palavra "Perl" da seguinte forma:

Isto é umPerl exemplo
Este é um exemplo de Python
Esse é outroPerl exemplo

Até agora, criei o seguinte script:

use strict; use warnings;
use Win32::OLE::Const 'Microsoft Word';

my $file = 'E:\test.docx';

my $Word = Win32::OLE->new('Word.Application', 'Quit');
$Word->{'Visible'} = 0;
my $doc = $Word->Documents->Open($file);
my $paragraphs = $doc->Paragraphs() ;
my $enumerate = new Win32::OLE::Enum($paragraphs);


while(defined(my $paragraph = $enumerate->Next())) {

    my $text = $paragraph->{Range}->{Text};
    my $sel = $Word->Selection;
    my $font = $sel->Font;

    if ($text =~ /Perl/){
        $font->{Bold} = 1;              
    }   
    $sel->TypeText($text);          
}

$Word->ActiveDocument->Close ;
$Word->Quit;

Mas aplicou um estilo ousado a todo o parágrafo e não edita as frases no local original. Dá-me a versão modificada e a versão original como esta:

Este é um exemplo de Perl
Este é um exemplo de Python
Este é outro exemplo de Perl
Este é um exemplo de Perl
Este é um exemplo de Python
Este é outro exemplo de Perl

Como devo resolver meu problema. Alguma dica? Obrigado como sempre :)

ATUALIZAR

Problema resolvido! Muito obrigado a@Zaide@cjm :)

Aqui está o código que funciona adorável:

while ( defined (my $paragraph = $enumerate->Next()) ) {

    my $words = Win32::OLE::Enum->new( $paragraph->{Range}->{Words} );

    while ( defined ( my $word = $words->Next() ) ) {

        my $font = $word->{Font};
        $font->{Bold} = 1 if $word->{Text} =~ /Perl/;
    }
}

questionAnswers(2)

yourAnswerToTheQuestion