Sorry for the detail. I'v complete forgotten this program as another guy on the job found a similar program.
I stumble on this forgotten program as I was sorting out files.
the memory version reads the IP file and into memory and prints the IP from the array to the output file
the disk version reads a files at once, altering from one file to the other until it find the numbered IP
then write the IP and associated ports to the output file.
the memory version is much faster and thus much easier to write but may not work on computers with less memory.
the disk version is much slower due to frequent disk access.
port-state-service+IP-mem.pl and port-state-service+IP-disk.pl
https://www.perlmonks.com/?node_id=11129698
thank you for your help.