Thanks for the suggestion about dumping the @results array. That did help. Well, sort of. It made me more confused, actually. In the find_thread routine, I added a line before the return:
print "find_thread dump $dir: " . Dumper(@results) . "\n";
I then run my script 10 times dumping the results to a 10 files. What I am finding is that the dump of @results can sometimes have output that is from another directory entirely. For example:
find_thread dump /vobs/doc:
$VAR1 = '/vobs/license_manager/install/LMInstall/LM_Install.iap_xml@@/
+main/v4.0.0_gxp_patch/0';
$VAR2 = '/vobs/license_manager/install/LMInstall/LM_Install.iap_xml@@/
+main/v4.0.0_gxp_patch/1';
$VAR3 = '/vobs/license_manager/install/LMInstall/LM_Install.iap_xml@@/
+main/v4.0.0_gxp_patch/2';
$VAR4 = '/vobs/license_manager/install/LMInstall/LM_Install.iap_xml@@/
+main/v4.0.0_gxp_patch/3';
SIZE /vobs/doc: 4
find_thread dump /vobs/drs:
$VAR1 = '/vobs/license_manager/install/LMInstall/LM_Install.iap_xml@@/
+main/v4.0.0_gxp_patch/0';
$VAR2 = '/vobs/license_manager/install/LMInstall/LM_Install.iap_xml@@/
+main/v4.0.0_gxp_patch/1';
$VAR3 = '/vobs/license_manager/install/LMInstall/LM_Install.iap_xml@@/
+main/v4.0.0_gxp_patch/2';
$VAR4 = '/vobs/license_manager/install/LMInstall/LM_Install.iap_xml@@/
+main/v4.0.0_gxp_patch/3';
SIZE /vobs/drs: 4
Which is totally confusing. @results is local to find_thread and shouldn't know anything about the other threads. What is even weirder is that when I switch to not use ClearCase find, and just find directories on the system, it seems to all work fine. So at this point, I am thinking that spawning multiple ClearCase find commands at once is causing an issue. I'll take it up with IBM.