#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $initialStr = "[20150302 22:01:05] [1, 2, 3, 4] String0\n [20150302 22:01:05] [1, 2, 3, 4] String1\n [20150302 22:01:05] [1, 2, 3, 4] String2\n [20150302 22:01:05] [1, 2, 3, 4] String3\n [20150302 22:01:05] [1, 2, 3, 4] String4\n [20150302 22:01:05] [1, 2, 3, 4] String5\n [20150302 22:01:05] [1, 2, 3, 4] String6\n [20150302 22:01:05] [1, 2, 3, 4] String7\n"; my @matches = ( $initialStr =~ /\d+:\d+:\d+/ ); print Dumper \@matches; __END__ $VAR1 = [ 1 ]; #### $VAR1 = [ [1, 2, 3, 4] String0, [1, 2, 3, 4] String1, [1, 2, 3, 4] String2, [1, 2, 3, 4] String3, [1, 2, 3, 4] String4, [1, 2, 3, 4] String5, [1, 2, 3, 4] String6, [1, 2, 3, 4] String7 ];