use strict; for my $lun ( ('SAN_VC0_42','SAN_VC0_43') ) { $luns_to_hdisk {$lun} = { grep /hdisk\d+/, qx(vxdisk list $lun) } ; } print Dumper(\%luns_to_hdisk); $VAR1 = { 'SAN_VC0_43' => { 'hdisk855 state=enabled ' => 'hdisk920 state=enabled ', 'hdisk587 state=enabled ' => 'hdisk652 state=enabled ', 'hdisk51 state=enabled ' => 'hdisk116 state=enabled ', 'hdisk319 state=enabled ' => 'hdisk384 state=enabled ' }, 'SAN_VC0_42' => { 'hdisk571 state=enabled ' => 'hdisk636 state=enabled ', 'hdisk35 state=enabled ' => 'hdisk100 state=enabled ', 'hdisk303 state=enabled ' => 'hdisk368 state=enabled ', 'hdisk839 state=enabled ' => 'hdisk904 state=enabled ' } }; #### $ vxdisk list SAN_VC0_42 Device: SAN_VC0_42 devicetag: SAN_VC0_42 type: auto info: format=none flags: online ready private autoconfig invalid pubpaths: block=/dev/vx/dmp/SAN_VC0_42 char=/dev/vx/rdmp/SAN_VC0_42 Multipathing information: numpaths: 8 hdisk35 state=enabled hdisk100 state=enabled hdisk303 state=enabled hdisk368 state=enabled hdisk571 state=enabled hdisk636 state=enabled hdisk839 state=enabled hdisk904 state=enabled