use strict use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Word'; $Win32::OLE::Warn = 2; # Throw Errors, I'll catch them my $Word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application', 'Quit'); foreach $rate($Word->ActiveDocument->Selection->{Text}){ if ($rate =~ /2M/){ print $rate; }}