Here is an approach that works and is easy to read:
#!/usr/bin/env perl
use strict;
use warnings;
my @status = <DATA>;
my @temp;
for (@status) {
last if /^\s*$/;
push @temp, $_;
}
print @temp;
__DATA__
CPU Temp = 30
GFX Temp = 45
RAM Temp = 40
CPU Status = OK
GFX Status = OK
RAM Status = OK
Output:
CPU Temp = 30
GFX Temp = 45
RAM Temp = 40
UPDATE: The following results in two arrays (one for temperature and one with status)
#!/usr/bin/env perl
use strict;
use warnings;
use feature 'say';
my @data = <DATA>;
my @status = @data;
my @temperature;
for (@data) {
shift @status;
last if /^\s*$/;
push @temperature, $_;
}
say "Temperature:";
print @temperature;
say "Status:";
print @status;
__DATA__
CPU Temp = 30
GFX Temp = 45
RAM Temp = 40
CPU Status = OK
GFX Status = OK
RAM Status = OK
Output:
Temperature:
CPU Temp = 30
GFX Temp = 45
RAM Temp = 40
Status:
CPU Status = OK
GFX Status = OK
RAM Status = OK