in reply to Getting only part of a text file...

Here's my best guess at what you're looking for (tested). I left the "Ditribution of ..." section out for brevity. It would be just another "if ($section eq ...)" clause pushing data onto an array ref in the %data hash. If more sections are needed, consider generalizing the section parsing. Hope this helps.
sub Get_Sect { my $targetLV = shift; my $section=''; my ($name,$value); my %data; open my $IN, '<', 'testpars.dat'; LINE: while (<$IN>) { chomp; if (/^\s*$/) { return \%data if ($data{'LV_Name'} = $targetLV); $section = ''; next LINE; } if (/^--- Logical volumes ---/) { $section = 'vol'; next LINE; } if ($section eq 'vol') { ($name,$value) = unpack('a28 a*',$_); $name =~ s/(\s+\(.+\))?\s+$//; #remove paren & spaces at end $name =~ s/\s/_/g; $data{$name} = $value; } } }