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
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/;
}
}
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})