Re: RFC 106 (v1) Yet another lexical variable proposal: lexical variables made default
[email protected] (Ariel Scolnicov) 18 Aug 2000 17:25:39 +0300
| Newsgroups | perl.perl6.language.strict |
|---|---|
| Organization | Compugen, Ltd. |
| Message-ID | <[email protected]> |
"J. David Blackstone" <[email protected]> writes: [...] > I agree with you. However, I am unable to find a case in which a > package global could not be replaced with a lexical defined in the > module's .pm file and an accessor method for it. Even if you are > extending a class, you can still provide this. Modes. Emacs Lisp uses this (I'm not convinced that's a recommendation). Suppose I have a flag $PKG::verbose which prints descriptive messages to LOG if 1 (but if 2 does something else, since bits are significant). If it's a global, I can do this: { local $PKG::verbose = 1; PKG::frobnicate; } # Back to previous verbosity level Lacking true dynamic variables, this doesn't work (although unwind-protect, if we had that, could also provide for restoring variables). The best we can do is: { my $old_verbosity = PKG::get_verbose; PKG::set_verbose(1); PKG::frobnicate; PKG::set_verbose($old_verbosity); } but that doesn't work in the presence of eval{}/die. So you also need unwind-protect. [...] -- Ariel Scolnicov |"GCAAGAATTGAACTGTAG" | [email protected] Compugen Ltd. |Tel: +972-2-6795059 (Jerusalem) \ We recycle all our Hz 72 Pinhas Rosen St. |Tel: +972-3-7658514 (Main office)`--------------------- Tel-Aviv 69512, ISRAEL |Fax: +972-3-7658555 http://3w.compugen.co.il/~ariels