OK, now I understand!
Thank you, however, the variable is just the
element (ie unique name (names).html), i added the <0>
as I thought based on my ksh script, which is terribly slow required a (cnt(cnt+1)) with cnt(0).html as the
output to redirct to.
But I had to then had to rename 1.html, 2.html and so forth
into a 12345.html, 34343.html for example
I am going to test this to see what happens

Upon my modifications, and executing the script, I get the following errors.
$ perl.exe perl1.pl
Variable "$NAMES" is not imported at perl1.pl line 36.
Global symbol "$NAMES" requires explicit package name at perl1.pl line
36.
Missing comma after first argument to open function at perl1.pl line
43, near ""
Cannot open target file. $!\n";"
Execution of perl1.pl aborted due to compilation errors.
UPDATE- Modifications.
#!/usr/bin/perl
#read each line in test1.txt into data_file array

#read each line in code.txt into a names_file array
foreach $line (@data) {

#create loop that reads each ID in
#code.txt (NAMES array), searches for
#each in array elements for test1.txt
#(DATA array), redirects a new
#(NAMES).html for each element
foreach ( @names_data )
{
chomp;
push @target, qq|$line<0> > +("$NAMES.html")\n|;
#I do not understand what you are trying to do above...
#Just modify the part between the pipes |...\n| to include
#whatever variables you are wanting.
}
}
open TARGET ">$target_file"
|| die "Cannot open target file. $!\n";
print TARGET @target;
close TARGET;