Well, what have you tried? And what exactly do you want to store for each
line?
If you want to get a data structure that looks something like line number =>
{Equation => 1, Spec => 2, Timing => 1}, then an ugly way would be
> use strict;
> use warnings;
> use 5.010;
> use Data::Dumper;
>
> my @everything;
> while (<DATA>) {
> while (/(?<word>\p{L}+)\s+\p{L}+\s+(?<setnumber>[0-9]+)/g) {
> ${$everything[$. - 1]}->{$+{word}} = $+{setnumber};
> }
> }
>
> say Dumper \...@everything;
>
Or less ugly:
> my @everything2;
> while (<DATA>) {
> push @everything2, {/(\p{L}+)\s+\p{L}+\s+([0-9]+)/g};
> }
>
On the other hand, if you just want the numbers,
> my @all_numbers;
> while (<DATA>) {
> push @all_numbers, [ /([0-9]+)/g ];
> }
>
And if you want them in a string, not an anonymous array,
> my @all_numbers_str;
> while (<DATA>) {
> push @all_numbers_str, join ', ', /([0-9]+)/g;
> }
>
And the simplest, if you just want one of the numbers,
> my @first_number;
> while (<DATA>) {
> push @first_number, /Equation Set ([0-9]+)/;
> }
>
If this went over your head, have a look at perlretut[0] and perlreftut[1],
as well as perlre[2] and perlvar[3], for %+ and \p{}.
[0] http://perldoc.perl.org/perlretut.html
[1] http://perldoc.perl.org/perlreftut.html
[2] http://perldoc.perl.org/perlre.html
[3] http://perldoc.perl.org/perlvar.html
Brian.