Switch the match around and it works.<br>1> A = <<$a>>.<br><<"a">><br>2> B = <<$b>>.<br><<"b">><br>3> <<"a:b">> = <<A/binary, $:, B/binary>>.<br>
<<"a:b">><br><br>If I understand the way it works correctly you are attempting to assign the right side to the left side in your example. If I am wrong I am sure one of the smarter Erlangers will flog me.<br>
<br>Jayson<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Nov 6, 2012 at 2:16 PM, Olav Frengstad <span dir="ltr"><<a href="mailto:olav@fwt.no" target="_blank">olav@fwt.no</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hey,<br>
<br>
I'm trying to wrap my head around a problem I have with constructing<br>
and matching a binary.<br>
<br>
Take the following example (will fail with "a binary field without<br>
size is only allowed at the end of a binary pattern"):<br>
<br>
2> A = <<$a>>,  B = <<$b>>,<br>
2> <<A/binary, $:, B/binary>> = <<"a:b">>.<br>
* 2: a binary field without size is only allowed at the end of a binary pattern<br>
<br>
Using size specification yields the expected result:<br>
3> <<A:1/binary, $:, B:1/binary>> = <<"a:b">>.<br>
<<"a:b">><br>
<br>
Even equality checks works:<br>
4> <<A/binary, $:, B/binary>> == <<"a:b">>.<br>
true<br>
<br>
I would assume that the size of the binary is known when performing<br>
construction and therefore the first example should work (considering<br>
<<X/binary,...>> equality checks works).<br>
<br>
Can anyone shed some light on what's happening here?<br>
<br>
Cheers,<br>
Olav<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br></div>