Here's a clue. I just eliminated the problem by reversing the order of the 'use' statements in the main file -- i.e. saying use B; use A; instead of vice versa. VISIT EARLY REPUBLIC BOOKS ON THE WEB: WWW.EarlyRepublic.COM Hal Morris: hal@panix.com -- Editor of: * H-SHEAR Web pages: http://www.h-net.msu.edu/~shear * Jacksonian Miscellanies: Archive at http://www.jmisc.net/jmisc * Tales of the Early Republic web site: http://WWW.EarlyRepublic.NET On Sun, 23 Jan 2005, Hal Morris wrote: > > I'm running on Redhat Linux version 9.0. > > I'm having a rash of previously working code breaking when module exported > symbols no longer get imported to another module that 'uses' them. > > The situation looks like: > > main perl file: > > ... > use A; > use B; > > A contains 'use B' > > main calls function f() in A.pm, which calls function g() in B.pm, which is > treated as an undefined method. > > Running under the debugger, A.pm definitely contains 'use B.pm', but on entry > to [A::]f(), I find: > > DB <<1>> p scalar keys %A:: > 9 > DB <<2>> use B > DB <<3>> p scalar keys %A:: > 113 > > Closer examination shows the A.pm symbol table grew via importation of > symbols from B.pm that should already have gotten imported. > > Is anything like this known to occur in 5.8.0 that could be prevented through > an upgrade? > > Workarounds, diagnostic strategies, anything might help. I'll be glad to try > something out and submit the results. This is occurring in a pretty big > system and I don't know how to isolate it. > > If this is the wrong forum I'm having trouble finding the right one, and I > have in the past worked with perl5 porters (I was sort of the perl for UTS > liason). > > Best wishes, Hal >Thread Previous