if ( $config[$m]{Vendor} =~ /$products[$n]{Name}/ ) { #### #!/usr/bin/perl use strict; use warnings; use diagnostics; my @products = ( { 'Prod' => 'pencil', 'Name' => "Staples", 'Vendor Item ID' => "1", }, { 'Prod' => 'paper', 'Name' => "OfficeMax", 'Vendor Item ID' => "2", }, { 'Prod' => 'eraser', 'Name' => "Walgreens", 'Vendor Item ID' => "3", }, ); my @config = ( { 'Vendor' => "Staples", 'URL' => "http://staples/item=*", }, { 'Vendor' => "OfficeMax", 'URL' => "http://officemax/item=*", }, { 'Vendor' => "Walgreens", 'URL' => "http://walgreens/item=*", }, ); my ($n, $m, $url); print_products("BEFORE"); $n=0; for my $el (@products) { if ( exists $products[$n]{"Vendor Item ID"} ) { $m = 0; for my $el (@config) { if ( exists $config[$m]{Vendor} ) { if ( $config[$m]{Vendor} =~ /$products[$n]{Name}/ ) { $url= $config[$m]{URL}; $url=~ s/\*/$products[$n]{"Vendor Item ID"}/g; $products[$n]{TaggedID} = $url; } } $m++; } } $n++; } print_products("AFTER"); sub print_products { my ($msg) = @_; print "$msg\n" if defined $msg; my $count = 0; foreach my $prod (@products) { $count++; print "$count:"; foreach my $key (sort keys %$prod) { print " \"$key\"=\"".$$prod{$key}."\""; } print "\n"; } } #### foreach my $prod (@products) { next if !exists $$prod{'Vendor Item ID'}; my $viid = $$prod{'Vendor Item ID'}; my $name = $$prod{'Name'}; foreach my $conf (@config) { next if !exists $$conf{'Vendor'}; if ( $$conf{'Vendor'} eq $name ) { next if !exists $$conf{'URL'}; my $url = $$conf{'URL'}; $url =~ s/\*/$viid/; $$prod{'TaggedID'} = $url; last; } } }