#!/usr/bin/perl use 5.014; #994367 my @data = ( 'R00005: 00330: C01010 => C00011', 'R00005: 00791: C01010 => C00011', 'R00005: 01100: C01010 <=> C00011', 'R00006: 00770: C00022 => C00900', 'R00008: 00362: C06033 => C00022', 'R00008: 00660: C00022 => C06033', 'R00010: 00500: C01083 => C00031', 'R00013: 00630: C00048 => C01146', 'R00013: 01100: C00048 <=> C01146', ); for my $data (@data) { if ( $data =~ /(R\d{5}).+)/ ) { # Match on and capture any line which # contains the sequence R, 5 digits, and # something more # The parens in the regex capture the # match to $1 (but are not used here) # which could be used in other applications. say "\t Match on data $data. Hooray!"; } else { say "No match on data $data"; } } # do it again for those beginning "R00005" ONLY say "\n\n doing it again for 'R00005' ONLY"; for my $data (@data) { if ( $data =~ /(R0{4})(5)(.+)/ ) { say "\t Match on data " . $1 . $2 . $3 . " Hooray!"; # 3 captures, # print'em # NOT a good practice; # illustrate ONLY one aspect # of regex captures } else { say "No match on data $data"; } } =head output: Match on data R00005: 00330: C01010 => C00011. Hooray! Match on data R00005: 00791: C01010 => C00011. Hooray! Match on data R00005: 01100: C01010 <=> C00011. Hooray! Match on data R00006: 00770: C00022 => C00900. Hooray! Match on data R00008: 00362: C06033 => C00022. Hooray! Match on data R00008: 00660: C00022 => C06033. Hooray! Match on data R00010: 00500: C01083 => C00031. Hooray! Match on data R00013: 00630: C00048 => C01146. Hooray! Match on data R00013: 01100: C00048 <=> C01146. Hooray! doing it again for 'R00005' ONLY Match on data R00005: 00330: C01010 => C00011. Hooray! Match on data R00005: 00791: C01010 => C00011. Hooray! Match on data R00005: 01100: C01010 <=> C00011. Hooray! No match on data R00006: 00770: C00022 => C00900 No match on data R00008: 00362: C06033 => C00022 No match on data R00008: 00660: C00022 => C06033 No match on data R00010: 00500: C01083 => C00031 No match on data R00013: 00630: C00048 => C01146 No match on data R00013: 01100: C00048 <=> C01146 =cut