#!/usr/bin/perl use strict; use warnings; my $file = "data.txt"; open (INPUT, "< $file"); undef $/; my $string = ; while ($string =~ /(\d+)\.\n(.+?)A\)(.+?)B\)(.+?)C\)(.+?)D\)(.+?)(\n\n|$)/sg) { my @captures = ($1, $2, $3, $4, $5, $6); foreach (@captures) { s/\n//g; } print "$captures[0]\n"; print "$captures[1]\n"; print "$captures[2]\n"; print "$captures[3]\n"; print "$captures[4]\n"; print "$captures[5]\n"; } close (INPUT);