What is the fastest way to count the number of times a certain string appears in a bigger one? My best guess would be to replace all instances of that string with nothing, c
You can capture the strings, then count them. It can be done by applying a list context to the capture with ():
my $x = "foo";
my $y = "foo foo foo bar";
my $c = () = $y =~ /$x/g; # $c is now 3
You can also capture to an array and count the array. Same principle, different technique:
my @c = $y =~ /$x/g;
my $count = @c;