[erlang-questions] Basic Erlang case question

Alexander Lamb <>
Thu Jul 10 10:41:29 CEST 2008


Hello List,

Here is a very simple code to search if a supplied password is correct  
or not:

				F1 = fun() -> mnesia:match_object(systems,  
#system_info{full_attribute = {System_Name,admin_password}, _ = '_'},  
read) end,
				case Password of
					[] -> MD5_Password = [];
					_Any -> MD5_Password = erlang:md5(Password)
				end,
				case mnesia:transaction(F1) of
					{atomic, []} 								  -> {error, unknown_system};
					{atomic, [#system_info{data = MD5_Password}]} -> {ok, password};
					{atomic, _}									  -> {error, bad_password};
					{aborted, Reason}							  -> {error, Reason}
				end



Basically, if supplied Password is empty, the MD5_Password must be  
empty. If not, I encrypt the Password to compare it with stored version.

My problem is that it compiles with a warning:

./cs_systems.erl:173: Warning: variable 'MD5_Password' exported from  
'case' (line 167)

Why? Obviously I am trying to match the password in the record I found  
with the password I supply.

Thanks,

Alex




More information about the erlang-questions mailing list