[erlang-questions] variable unsafe just in macros

litao cheng <>
Sun Aug 10 08:09:58 CEST 2008


in my computer, the two DEBUG  macro all work corretly. my erlang otp is
R12B-3.

2008/8/10 Lasaro <>

> Sorry, I sent the message before it was ready (twice!). The question
> was
> why does this definition gives me a "variable 'Param' unsafe in
> 'case'".
>
> -define(debug,true).
>
> -ifdef(debug).
> -define(DEBUG(Msg),
> case Msg of
>          [] ->
>              io:format("{~p@~p:~p}", [?MODULE,?LINE,self()]);
>          [[_|_]=Format, [_|_]=Param] ->
>              io:format(lists:append(["{~p@~p:~p} ",Format]), [?MODULE,?
> LINE,self()|Param]);
>          [_|_] ->
>              io:format("{~p@~p:~p} "++Msg, [?MODULE,?LINE,self()]);
>          _ ->
>              io:format("{~p@~p:~p} wrong debug call", [?MODULE,?
> LINE,self()])
>      end).
> -else.
> -define(DEBUG(_M), true).
> -endif.
>
> but this one does not?
>
> -define(debug,true).
>
> -ifdef(debug).
> deb(Msg)->
>      case Msg of
>          [] ->
>              io:format("{~p@~p:~p}", [?MODULE,?LINE,self()]);
>          [[_|_]=Format, [_|_]=Param] ->
>              io:format(lists:append(["{~p@~p:~p} ",Format]), [?MODULE,?
> LINE,self()|Param]);
>          [_|_] ->
>              io:format("{~p@~p:~p} "++Msg, [?MODULE,?LINE,self()]);
>          _ ->
>              io:format("{~p@~p:~p} wrong debug call", [?MODULE,?
> LINE,self()])
>      end.
>
> -define(DEBUG(Msg), deb(Msg)).
> -else.
> -define(DEBUG(_M), true).
> -endif.
>
> Cheers.
> Lásaro
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080810/e85c683a/attachment.html>


More information about the erlang-questions mailing list