2010-05-19 6 views
7

Ich versuche, die Methode für die Benennung eines Lua-Pakets nach dem Dateinamen here zu verwenden, jedoch ist _REQUIREDNAME nie definiert. Zum Beispiel habe ich diese beiden Dateien_REQUIREDNAME immer Null

samplePackage.lua:

print("_REQUIREDNAME: ", _REQUIREDNAME) 
return nil; 

packageTest.lua:

require "samplePackage" 

Und wenn ich packageTest.lua laufen gibt es > _REQUIREDNAME: nil

ich auch couldn '_REQUIREDNAME' wird im Lua 5.1 Refrence Handbuch nicht erwähnt, also wurde das aus der Sprache entfernt, oder fehlt mir etwas?

Antwort

11

Die Funktionsweise von Paketen und Modulen wurde in Lua 5.1 stark verändert, wodurch die erste Ausgabe von Programming in Lua in Bezug auf dieses Thema größtenteils veraltet ist.

In 5.1 wird der Modulname als Argument an das Modul von require übergeben. Sie können darauf zugreifen mit ...:

print("Module name: ", ...) 

Die second edition der Programmierung in Lua Lua deckt 5.1. Es ist nicht kostenlos, aber das Kapitel über Pakete und Module ist available as a sample (PDF).