<br><br><div class="gmail_quote">On Mon, May 5, 2008 at 5:36 PM, Edwin Fine <<a href="mailto:erlang-questions_efine@usa.net">erlang-questions_efine@usa.net</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">> I have a function start(Port, Htdocs) that I want to call with 8888,<br>
> "C:/htdocs" and I can't figure out what the appropriate syntax should be.<br>
</div>This can be nasty to get right. It depends on how the command line<br>
interprets characters like single quote and double quote.<br>
It also depends on whether you use -s or -run.<br>
<br>
-s interprets all function arguments as atoms, so your program will<br>
get all the values as atoms. You will usually need to write a special<br>
MFA to convert the atoms to the actual types of the parameters<br>
desired. Note that all arguments get passed in a single list when<br>
called like this (see start_cmd_line/3).<br>
<br>
-run interprets all function arguments as strings, so your program<br>
will get all the values as string. You will often have to write a<br>
special MFA to convert the strings to the actual types of the<br>
parameters desired.<br>
<br>
For example:<br>
<br>
-module(foo).<br>
-export([start_cmd_line/1, start/3]).<br>
<br>
start_cmd_line([NameAtom, IntValue, StrValue]) when is_atom(NameAtom),<br>
is_atom(IntValue), is_atom(StrValue) -><br>
    Name = NameAtom, % Not really necessary because NameAtom is already an atom<br>
    Int = list_to_integer(atom_to_list(IntValue)), % Could throw an exception<br>
    Str = atom_to_list(StrValue),<br>
    start(Name, Int, Str).<br>
<br>
start(Name, Int, Str) -><br>
    io:format("Name: ~p, Int: ~p, Str: ~p~n", [Name, Int, Str]),<br>
   % Etc<br>
   ok.<br>
<br>
If you started the above by<br>
<br>
erl -s foo Jarrod 12345 "This is a string"<br>
<br>
you would get an output something like this:<br>
Erlang (BEAM) emulator version 5.6.2 [source] [64-bit] [smp:4]<br>
[async-threads:0] [hipe] [kernel-poll:false]<br>
<br>
Name: 'Jarrod', Int: 12345, Str: "This is a string"<br>
Eshell V5.6.2  (abort with ^G)<br>
1><br>
<br>
Hope this helps.<br></blockquote><div><br>thanks that clears things up greatly. <br></div></div><br>