The phrase "Lexical Pragmas" is probably both redundant and ungrammatical (the correct plural of "pragma" being "pragmata", I believe). But the use of "pragma" to mean "Perl module with an all-lower-case name" is fairly common, and I wanted to make clear that this was not what I was talking about. This blog entry is about writing Perl code whose configuration changes are limited to a lexical scope, just like built-in pragmata such as
strict or /users/tom_wyant/2021/12/index.html
... computer language design is just like a stroll in the park. Jurassic Park, that is. -- Larry Wall
Perl's grammar is inherently ambiguous. That is, it is possible for a syntactically correct chunk of Perl to have more than one valid interpretation. Maybe this is because Larry Wall is a linguist? After all, natural languages are full of ambiguity.
ambiguous warning is part of the group
syntax; that is…
syntax contains a number of sub-categories representing possibly-problematic syntax. These include
ambiguous syntax, problematic
bareword usage, invalid
printf conversions, and more. But there are also
syntax diagnostics that do not fall under any of the sub-categories. These tend to be a miscellaneous group, and a normal-sized blog post can do no more than to give a sample.
What brought this to my attent…
Who knows what evil lurks in the hearts of men? The Shadow knows!
OK, Perl does not literally have a warning about a 1930's pulp fiction and radio serial character. But Perl 5.28 introduced
shadow as a new warning category for cases where a variable is redeclared in the same scope. Previously, such warnings were under
To tickle this it is su…
A casual remark about closures which I made in My Favorite Warnings:
redefine touched off a long off-topic exchange with Aristotle that I thought ought to be promoted to a top-level blog entry. The big thing I learned was that any Perl subroutine can be a closure. The rest of this blog will try to make clear why I now believe this. The words are my own, as are any errors or misconceptions.
The second sentence of ="h…