An alternative to the eventually-to-be-deprecated reset function, plus lists variables and their values. Place VarStructor in the script containing the variables. Configurable with $CLEAR and $OMIT.

One advantage over some alternatives for listing variables is that variables in the code will be listed even if they weren't "seen" during run time. This includes variables within comments, though that part isn't an advantage (bottom of my list of things to fix).

Other limitations are it doesn't handle hashes or variables beginning with "_" and spacey values will be spacey looking (not visually delimited) in the output. I heard something about variable names containing a space not working too (whatever they are). I might fix all that, depending on the response I get.

Code removed by author. I no longer want to contribute to this community.

You know very well it's not a joke. I got tired of reading about the limitations and complexities of other ways of accomplishing similar things. This script is the best way to accomplish what I want to do, and the hash support is easy to implement if I or someone else wants it.

As far as I could tell, it's safer and more flexible than reset, it's faster and gives a neater display than Xref if you just want the variables, and it doesn't require Perl compilation. It doesnt't HAVE to be used from within the target script, and you could even use it on documentation and compare the results with the script you're documenting to see if you left out any descriptions of important variables.

What's a joke is everyone's local variable worship and fear of using eval on a string and related issues like passing values to subroutines without parameters. Following those "rules" would just slow me down and make my code longer and more complex.

An even funnier joke is that people are assuming that a site mapper/link checker script of mine, of 3200 lines, should be rewritten, even though I say it works great and isn't difficult for me to understand. The most difficult to understand parts are those using functions that I forgot how to use, and rewriting it would be insane even if I didn't forget anything.

With all the bugs in so much software today, you would think that people would want to learn how I was able to create such a long script without using strict, without OO, with all globals, with reinvented modules built in, and all the other "bad" things, THAT WORKS. It's a web application that runs on my home computer through a web interface (though I'm not running a web server at home) and I'm willing to put it on line temporarily for a few people who want a free site map or local link check and who's minds would be blown when it works. Please wear a helmet.

I must admit that it gives me a chuckle that you would think that 3200 lines is really long.

I just did a wc on a source directory for a significant application that I'm working on. Over 100,000 lines of code, comments and documentation. Without even looking at how much HTML we have. Of course this application does a little more than just check links...

Do you think that your techniques would scale to a team of people working on a code base which is an order of magnitude larger than yours? With a lot of interacting pieces? And why do you think that I should believe that yours really works without any bugs? I know lots of developers who think that their own code works flawlessly. I've known far fewer who could prove it.

To seriously answer your question, I'm not interested in knowing how it is possible to write a link checker in 3200 lines. I'd prefer to learn how to write one in under 100 lines. Or one with lots more features, still in a small fraction of yours.

And, of course, I want to be able to scale up my development practices to also be useful when I work with a team of people on far larger code bases. (While still keeping the functionality per line up there.)

With all the bugs in so much software today, you would think that people would want to learn how I was able to create such a long script without using strict, without OO, with all globals, with reinvented modules built in, and all the other "bad" things, THAT WORKS.

I don't get this at all. You know how it reads to me? Something like this:

I was able to build a house without a saw, hammer or nails, but with just rocks and sticks and mud.

Sure you can build a great house like that if you pay attention to detail and use a lot of skill, but if you have tools to help you with the details and can help you build it better and faster, why not use them?

That said, I think you should not rewrite your code. If you've already written it and it works for you, use it. If some poor soul comes after you and can't understand what you've done, let him rewrite it so he can. But gratuitous rewriting of working software is a short path to ruin.