foreach $line (@arr) { if ( $line =~ m{\s+\d+:\s+\d+\s*:(\S+:\S+:D\n?)$}g ) { #do something } } #### 13: 5456 :0:0 14: 5444 :0:0 15: 5445 :0:0 16: 14682 :1:0:D 17: 5450 :0:0 19: 5453 :0:0 20: 14626 :0:0:D