my @vxdisk_lines = qx(vxdisk list $lun); chomp @vxdisk_lines; my @hdisks = grep {/hdisk\d+/} @vxdisk_lines; my %h; for (@hdisks) { my ($k, $v) = split; $h{$k} = $v; } $luns_to_hdisk{$lun} = \%h;