in reply to array of hash ref?
I'm not altogether sure what you are after, but maybe the following does it?
use strict; use warnings; my %vhosts; my $host; #open (LSMAP, "-|", "/usr/ios/cli/ioscli lsmap -all") or die $!; while (defined(my $lsm = <DATA>)) { if ($lsm =~ /^Backing device\s+(\w+)\.\w+$/) { push @{$vhosts{$host}}, $1; next; } my ($p1, $p2, $p3) = split /\s+/, $lsm; $host = $p1 if defined $p3 && $p1 !~ /^(SVSA|-+)$/; } for my $host (sort keys %vhosts) { print "lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter $hos +t -lu $_\n" for @{$vhosts{$host}}; } __DATA__ SVSA Physloc Client Pa +rtition ID --------------- -------------------------------------------- --------- +--------- vhost0 U9117.MMD.218A8B7-V1-C2 0x0000000 +b VTD vtscsi0 Status Available LUN 0x8100000000000000 Backing device l02duapofdev_r1.58ff94782d7c325acc49a8dd9c04bb1e Physloc Mirrored N/A VTD vtscsi1 Status Available LUN 0x8200000000000000 Backing device l02duapofdev_b1.0ee86903d4951ce38a9b691b322ff1d2 Physloc Mirrored N/A SVSA Physloc Client Pa +rtition ID --------------- -------------------------------------------- --------- +--------- -------------------------------------------- ------------------ vhost3 U9117.MMD.218A8B7-V1-C14 0x0000000 +0 VTD NO VIRTUAL TARGET DEVICE FOUND SVSA Physloc Client Pa +rtition ID --------------- -------------------------------------------- --------- +--------- vhost5 U9117.MMD.218A8B7-V1-C16 0x0000000 +7 VTD vtscsi22 Status Available LUN 0x8100000000000000 Backing device l02duapofqa_r1.4746343ea4f12fe1092615c8734d9844 Physloc Mirrored N/A VTD vtscsi23 Status Available LUN 0x8200000000000000 Backing device l02duapofqa1_d1.449583501d812f69e6189ea7f4a29e06 Physloc Mirrored N/A
Prints:
lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter vhost0 -lu l02d +uapofdev_r1 lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter vhost0 -lu l02d +uapofdev_b1 lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter vhost5 -lu l02d +uapofqa_r1 lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter vhost5 -lu l02d +uapofqa1_d1
It's more about "what you want" rather than "what you don't want".
|
|---|