my $temp; while (<>) { chomp; if (s/^Temp:\s*//) { if (defined($temp)) { ...use $temp... }; $temp = $_; } else { $temp .= $_; } } if (defined($temp)) { ...use $temp... } #### while (<>) { next unless m{(\d+)/$}; my $temp = $1; ...use $temp... } #### while (<>) { next unless /^Temp:/; my $temp; if (m{(\d+)/$}) { $temp = $1; } else { $_ = <>; # read the next line next unless m{(\d+)/$}; $temp = $1; } }