#!/usr/bin/env perl use strict; use warnings; use Data::Dump; my @src_strings = qw{A ABA ABBCCC AAABBCD BCDD CCD D}; my @re_strings = qw{A B C}; my %count; for my $src (@src_strings) { for my $re (@re_strings) { $count{$src}{$re}++ while $src =~ /$re/g; } } dd \%count;