私の要件は次のとおりです。
次のように wmic コマンドの出力を読んでいます。
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 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, search for name and if name has matched display its identifying number
print "Identifying number(say $id) of the packge with name(say $pkg)\n";
}