Modules

Lua Module Loading

Loading Modules

Lua module loading uses require with package.path.

Understanding Lua Modules

Lua modules are a powerful way to organize your code into reusable components. By using modules, you can break your program into separate files, making it easier to manage and maintain.

Modules in Lua are typically stored in separate files and loaded into your application using the require function. The require function searches for the module files based on paths defined in package.path.

Using the require Function

The require function is used to load a module in Lua. It takes a single argument, which is the name of the module, and returns the module's exported table. Here's a basic example:

In this example, the mymodule.lua file defines a module with one function, sayHello. The main.lua file then loads this module using require and calls the sayHello function.

Understanding package.path

Lua uses the package.path variable to determine where to look for module files. It's a string containing a series of paths separated by semicolons. Each path can contain the special placeholder ?, which gets replaced by the module name when searching for a module.

Here's an example of how you might set package.path:

In this configuration, Lua will look in the current directory and /usr/local/lua/ for a file named mymodule.lua if require("mymodule") is called.

Best Practices for Module Loading

  • Organize code logically: Group related functions and data into modules.
  • Use descriptive names: Choose module names that clearly indicate their purpose.
  • Avoid global variables: Only expose necessary functions and data from modules.

By following these best practices, you can keep your Lua code clean, organized, and maintainable.

Modules

Previous
Modules