[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Fwd: Command line library load in Lua 5.2
- From: Dirk Laurie <dirk.laurie@...>
- Date: Thu, 3 Nov 2011 11:45:52 +0200
>> I.e. the global name is not created by the module, but by the Lua5.2
>> standalone interpreter.
>
> Option '-l' would be essentially useless if it did not create the
> global. It is intended to be used in interative mode and with the -e
> option: $ lua5.2 -l mymod -e "print(mymod.foo(10))"
I'll grant that the global is useful in that context.
But '-l' is not useless without the global. Lua 5.1 does not set it.
Yet nothing forces you to use only modules that set globals 5.1-style.
It's perfectly OK to use modules that return tables 5.2-style. Just
say `local mymod=require "mymod"`. This works nicely with '-l',
because:
* option `-l` adds an item to package.loaded
* `local mymod = require "mymod"` in the program picks up the module
loaded with `-l` instead invoking the package search mechanism.
The original proposal did not spell out that `-l
mymod=mymod_123_alpha_rc3` creates or replaces an entry in
package.loaded for `mymod` rather than for `mymod_123_alpha_rc3`, but
preloading a specific version of a required package would be a useful
application for it.
Dirk