#!/usr/local/bin/perl use File::Find; sub findtime { if ( -f "$File::Find::name" && "$File::Find::name" =~ /.*\.txt/i) { } } while (true) { sleep 3; find(\&findtime,"/test"); } and the number of files( both total and *.txt files) under the directory /test is the same. Additionally, i have observed that the memmory hogged by the server(which has the issue), apart from being huge at the initiation itself, grows with time. I have done a diff between the File/Find.pm files of the two servers and noticed that following are the differences.( lets call the server hogging memmory as s1 and the other as s2) s1 -- 17c17 < find(\&wanted, @directories_to_seach); --- s2 --- > find(\&wanted, @directories_to_search); ------------------------------------------------------------------------- s1 -- 42c42 < order they are given. In essense, it works from the top down. --- s2 -- > order they are given. In essence, it works from the top down. -------------------------------------------------------------------------- s1 -- 571c571 < local($dir, $name, $fullname, $prune); --- s2 -- > local($dir, $name, $fullname, $prune, $_); --------------------------------------------------------------------------- s2 -- 702a703 > $_ = $name if $no_chdir;