in reply to win32::ole ppt regexp

I don't have time at the moment to whip up a sample bit of code to make sure this is the problem, but i think you are trying to substitute member=(\d+) with members=$b4r4, which really does need a s/// ... maybe you skipped the leading s ? does running under -w produce any useful messages ?
from the frivolous to the serious

Replies are listed 'Best First'.
Re: Re: win32::ole ppt regexp
by lhoffmeyer (Initiate) on Jan 14, 2003 at 21:20 UTC
    Yes, certainly I need the s///. Still doesn't work, though. It appears that no text is being captured to regexp. I changed script a bit but still is not working. No errors or messages but no output to print command either.
    foreach my $shape (in $p2->Slides(4)->Shapes()){ if ($shape->{Type}==18){ my $text = $shape->TextFrame->TextRange; print "$text \n"; $shape =~s/members\=[0-9]{2,3}/members\=$b4r4/; } }
      A few thoughts ...

      • The regexp should probably be run against $text, not $shape.
      • you should not need the in in your foreach loop
      • You said the print is printing nothing ... are you seeing the new lines ? (maybe nothing = 18 ?)
      • Last time i worked with Power Point (a month or so ago), i resorted to using perl -d, putting a break at a line similar to your foreach, and then using Data::Dumper to poke around for the text box i needed (which ended up being $Presentation->Slides(1)->Shapes->Title->TextFrame->TextRange->{Text})

      from the frivolous to the serious