String variable eval in binaries

Thomas Lindgren <>
Tue Jul 26 16:57:26 CEST 2005



--- Inswitch Solutions <> wrote:

> <<[$h, $e, $l, $l, $o]>>.
> ** exited: {badarg,[{erl_eval,expr,3}]} **

You can't put a list directly into a binary. (At least
not today.)

> Str = "hello".
> <<Str>>.
> ** exited: {badarg,[{erl_eval,expr,3}]} **

Again, Str is a list. You can do

Bin1 = list_to_binary(Str).
<<Bin1/binary>>.  %% redundant in this case

Note that you can't even write <<Bin1>> directly: the
default type of Bin1 inside the binary expression is
something else, and the value of Bin1 can't be
converted to that.

So, to summarize:

1. The notation <<"foo">> suggests a list/string put
inside a binary, but this is not what it means.

2. You can't put a list directly into a binary.
Convert the list into a binary first :-) (That's more
helpful when you are mashing together several lists, I
guess.)

Best,
Thomas


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the erlang-questions mailing list