http://www.perlmonks.org?node_id=1043513


in reply to Using the map function

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