use strict; use warnings; local $/= "\n="; while (my $line = ) { print "\n------------------------------\n"; if ($line =~ m/Primary \(Reporting\) ID\s*:\s*((?:(?!Level).)*)Level\s*:\s*((?:(?!Group).)*)Group\s*:\s*((?:(?!Reg).)*)/si) { print "Primary (Reporting) ID : $1\nLevel : $2\nGroup : $3"; } if ($line =~ m/ID-Node\s*:\s*((?:(?!Inverse).)*)Inverse\s*:\s*((?:(?!\n).)*)/si) { print "\nID-Node : $1\nInverse : $2\n"; } print "\nSecondary ID :"; while ($line =~ m/(?