in reply to perl - loop

As has been said extensively already it is difficult to answer on the basis of the supplied code sample. use <c> tags to allow us read your code

I have made an attempt at parsing code out of it and added a few comments could you let us know what happens when you try to run the script?

... my $dir ='/home/'; # perhaps $ENV{HOME} ? ... next unless ($file =~m/\. gi$/); # really you're looking for a file e +nding ". gi" perhaps $file =~m/\.gi$/ ... %links = elink_batch_to($db1, %params); # where does $db1 come from .. } # missing closing brace