#!/usr/bin/perl use Modern::Perl; my @matched = qw {pv_name alt_link pv_status total_pe free_pe autoswitch proactive_polling}; my $vg_details = ' --- Physical volumes --- PV Name /dev/dsk/c14t3d1 PV Name /dev/dsk/c15t3d1 Alternate Link PV Status available Total PE 15997 Free PE 0 Autoswitch On Proactive Polling On '; $vg_details =~ m/^\s*PV\s+Name\s*(?\S+)\s* (\s*PV\s+Name\s+(?\S+)\s+Alternate\s+Link\s*) # skip them \s*PV\s+Status\s+(?\S+)\s* \s*Total\s+PE\s+(?\S+)\s* \s*Free\s+PE\s+(?\d+)\s* \s*Autoswitch\s+(?\S+)\s* \s*Proactive\s+Polling\s+(?\S+)\s*/gsmx; say $+{$_} for @matched; #### /dev/dsk/c14t3d1 /dev/dsk/c15t3d1 available 15997 0 On On