my @pnames = `wmic product where "Name like '%Provider%'" get IdentifyingNumber, Name,Version`; print "@pnames"; #### IdentifyingNumber Name Version {E094B8EA-87B7-48DE-A0A8-A18AC8BFCDF4} .NET Data Provider for Teradata 14.00.0.0 {1551F9D6-1B14-4AE1-BABA-70A4319C236A} ODBC Driver Provider 14.00.0.0 #### foreach $name ( @pnames ) { chomp($name); #@names = split('need to pass something',$name); # I want to split every input entry into 3 parts- IdentifyingNumber, Name,Version similarly the way they read. $name =~ s/^\s+//; #remove leading spaces $name =~ s/\s+$//; #remove trailing spaces # here logic goes this way, If the version number has matched, serach for name and if name has matched display its identifying number print "Identifying number(say $id) of the packge with name(say $pkg)\n"; }