If either of those features are used, the syntax checker should emit at warning that the perl program uses dangerous, deprecated features, and exit before some real damage is done.
I think realy you should be mad at the people who have there imports unlinking files etc not at perl ;)
I'm mad at the coders for making the code awkward; I'm mad at the designers of perl for making it impossible to write even the most basic of tools to fix code made possible by the design of perl, when I consider it patently obvious that such tools are necessary and important.
I want a code aware refactoring browser. I want tools that can automatically security audit my code for me, and ensure that no funny business is going on. I want tools that can analyse a given program, determine the underlying algorithms, and subsitute in known better algorithms and data structures in cases where it knows what to do. I want compilers that know what sort of data is typical for a given application, and self-optimize their data structures to deal with those situations. I want more intelligent tools that make me do less work; not more.
I'll settle for a simple syntax check that verifies the code is part of the language -- without running the program itself. If perl can't do that, perl should be fixed until it can.
This is just part of the price you pay for a dynamic language.
Well then, when are all these dynamic mis-features going to be removed from the language, so that all the necessary productivity tools to prove correctness and language safety can be developed?
I don't need to play games with syntax of a language so much as I need a language which will do what I ask it to do; and nothing that I don't.
If I ask for a syntax check, I should get a syntax check. If I ask for a variable to be renamed within a given scope, only that variable should change, not comments, not subroutines, . If I ask for a proof of correctness to guarantee that a given set of variables can't be affected, directly or indirectly, by a given other section of code, I should be able to build the tools to scan the code trees, and do it. If I ask for an analysis of what a program does, I should be able to tell what kind of I/O the program will attempt to do: access the file systems, write to sockets, connect to a database, etc.
No one is writing those sorts of tools; no one is making perl even remotely what it could be. I don't know why anyone thought added "symbol table magic" to code was a good idea when the cost is uncheckable code. It's just not worth it.
In reply to Re^6: Syntax checking without BEGIN blocks
by Anonymous Monk
in thread Syntax checking without BEGIN blocks
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |