do {$count = () = $s/PATTERN/REPLACEMENT/g; $acc += $count} for @array;
But s/// returns the number of substitutions made (or the empty string if none), so when list-ified this number (or the empty string) will always be a single-elemment list (update: which in scalar context will always be a $count of 1), so the $acc total will always be the number of elements of the @array array.
c:\@Work\Perl>perl -wMstrict -le "my @array = qw(PAT PATxPATxPAT PATxPATxPATxPATxPAT xxxxx); ;; my $acc; do { my $count = () = s/PAT/REP/g; $acc += $count; } for @array; ;; print qq{\$acc: $acc \@array: (@array)}; " $acc: 4 @array: (REP REPxREPxREP REPxREPxREPxREPxREP xxxxx)
Give a man a fish: <%-{-{-{-<
In reply to Re^2: How to count substitutions on an array
by AnomalousMonk
in thread How to count substitutions on an array
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |