How to handle nested case

Gian Lorenzo Meocci glmeocci@REDACTED
Sat Sep 18 19:14:37 CEST 2021


Hi,
I have a function like this:

get_nas_from_conf() ->
case get_radius_host() of
{ok, Server} ->
case get_radius_port() of
{ok, Port} ->
case get_radius_secret() of
{ok, Secret} ->
{Server, Port, Secret};
E -> E
end;
E ->
E
end;
E ->
E
end.

Which is the best way to write this kind of function?

I'd like to have a with operator like in Elixir, to rewrite my function in
this way:

get_nas_from_conf() ->
with {ok, Server} <- get_radius_host(),
{ok, Port} = get_radius_port(),
{ok, Secret} = get_radius_secret() ->
{Server, Port, Secret};
catch
{error, _Reason} = E ->
E
end.

Any suggestion?

-- 
GL
https://www.meocci.it <https://meox.github.io>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210918/569b9ccc/attachment.htm>


More information about the erlang-questions mailing list