Harry Zhu <[EMAIL PROTECTED]> wrote: > Say I have a file directory with hundreds of modules, I want to know if > there is a tool I can scan and identify the uninitalized variables in all > the files once (or through a loop) without actually running through all the > pages.
If you don't want to run through all the pages and possibilites yourself, I reccommend selenium: http://www.openqa.org/selenium/ That will allow you to create test suites that run in your browser that go through every page and try to do things on it. Then you can check your error logs and, if your test does everything a regular user possibly could, you'll have a list of all your uninitialized variables, as well as possibly turning up some bugs you hadn't tested for before. There's no easy way to do tell whether or not a variable is going to be used throughout the course of a webpage, except watching the warnings and running every single code path that web page has (logged in, not logged in, filled out this form element before hitting "submit", didn't, etc.) You might be able to do detect global variables that aren't used by a package, but nowadays over 90% of variables are local (my) variables, and still... What if the variable isn't initialized in one module, because another module initializes it? Devel::Cover can help to see if you're running every single code path possible in the code you care about; Devel::Trace and Devel::Profile can help to see exactly what code you're actually running and when. If you just want to get rid of the warnings and don't care whether or not the module is using it's variables cleanly, you can add the line no warnings 'uninitalized'; to each module that you're being annoyed by. - Tyler