There are a few I’m aware of:
- Rust-style
use(multiple imports per statement, renaming items usingas) - Java-style
import(single import per statement, no renaming (afaik)) - Zig-style
let xlib =(imports as assignments) - C-style
(no importing, just pastes the code of the named file)


Perl’s system of
use ModuleName LISTis pretty nifty.The LIST may contain pretty much anything and it’s passed to the module’s
importmethod (or one that the module has imported in turn from elsewhere). It can be interpreted or parsed freely by that routine.Usually, it’s expected to contain the names of variables and subroutines to be linked into (some might say “pollute”) the current namespace, as well as special flags that can import multiple at once, but it can also be left empty with
()and then everything in the module has to be referred to by prefix in a very similar way to how C++ does it.But in theory, you could put an entirely different programming language into that LIST and have the module do magical things with it. If you thought the fact that C++'s template system being Turing complete was insane, this is basically that, but to the next order of magnitude.