Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Erlang: How to use a -define macro outside of a module?

Tags:

erlang

Suppose I have the module test.erl, and inside it is the macro TOTAL:

-module(test)
-export([...])

-define(TOTAL,(100))

...

If get_total() was defined in test.erl, I could call test:get_total(). from the REPL

How do I call ?TOTAL (the macro) outside of the module test.erl without defining a function?

like image 262
Enrico Avatar asked Sep 28 '10 20:09

Enrico


1 Answers

You could put the -define in a test.hrl file, and use -include to include that in other modules. See the Erlang Preprocessor documentation for more information.

test.hrl

-define(TOTAL, (100)).

test.erl

-module(test).
-export([...]).

-include("test.hrl").

...

other.erl

-module(other).

-include("test.hrl").

io:format("TOTAL=~p~n", [?TOTAL]).
like image 81
Greg Hewgill Avatar answered Sep 20 '22 01:09

Greg Hewgill