For modules, list the keys of the %INC hash (values give the full path name). If runing on *nix, strace(1) or truss(1) are handy for finding the names of files opened. With strace use: strace -e trace=open to trace all file open calls. Note that some library (.so) calls are expected to fail, you can ignore these. Check man pages for argument details. I don't know of an equivalent on Windows, the dependency walker will not know about DLLs loaded at runtime (using LoadLibrary). Hope this helps.
update Sorry, strace example should be: strace -e trace=open perl scriptname.pl