my %slot_lkup; { my $slot; while (<$fh>) { if (/^Slot address (\d+)/) { $slot = $1; } elsif (/^ *Volume Tag[ .]+([^\n]+)/) { $slot_lkup{$1} = $slot; } } } ... $slot_lkup{$vol} ...