static variables?

Torbjorn Tornkvist tobbe@REDACTED
Tue Aug 22 16:03:42 CEST 2006

I should probably not show you this but...
# cat test.erl


test() -> test.

# erl
Erlang (BEAM) emulator version 5.5 [source] [async-threads:0] [hipe]
Eshell V5.5  (abort with ^G)
1> element(2, lists:keysearch(fields, 1, test:module_info(attributes))).


Yariv Sadan wrote:
> Hi,
> Strangely, I find myself at a crossroads where I would like to have
> static (i.e. per-module) variables. Yes -- I know -- this would be a
> gross violation of the shared-nothing principle -- but then I would be
> just as happy if all static variables were "final" so there's no way
> that two processes would trample on the same data.
> The situation is actually pretty simple: I have a 'person' module that
> corresponds to a database table. This module has a (static) list of
> fields. I would like to be able to access this static list from the
> module's functions without having to reconstruct it inside the
> function every time by calling a function such as
> fields() ->
>  ["name", "age"].
> Here's basically what I want to have:
> -module(person).
> -compile(export_all).
> fields = ["name", "age"].
> get_fields() ->
>  fields.
> Is there any way to do this in Erlang???
> (I looked at the process dictionary, but it is per process, not per
> module).
> Thanks,
> Yariv

More information about the erlang-questions mailing list