[erlang-questions] binary:compile_pattern - I'm very confused!

Steve Strong steve@REDACTED
Fri Feb 8 23:09:07 CET 2013


Hi, 

I've got a binary split that I'm doing fairly regularly, so I wanted to use a compiled pattern to make it more efficient.  I don't have any state floating around (it's very much a utility function), so my plan was to compile the pattern in an erl shell and just paste the resultant term directly into my source code (with an appropriate comment!).  However, things are not as they seem:

Erlang R15B02 (erts-5.9.2) [source] [smp:8:8] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.9.2  (abort with ^G)
1> C = binary:compile_pattern(<<0,0,1,0>>).
{bm,<<>>}
2> X = <<2,3,4,0,0,1,0,5,6,7>>.
<<2,3,4,0,0,1,0,5,6,7>>
3> binary:split(X, C).
[<<2,3,4>>,<<5,6,7>>]
4> binary:split(X, {bm,<<>>}).
** exception error: bad argument
     in function  binary:split/3 (binary.erl, line 84)
5> D = binary_to_term(term_to_binary(C)).
{bm,<<>>}
6> C = D.
{bm,<<>>}
7> D =:= C.
true
8> binary:split(X, D).
** exception error: bad argument
     in function  binary:split/3 (binary.erl, line 84)
9> 


The above should be fairly self-explanatory - I'm very confused and either being particularly dim tonight, or there is some dark magic at work :)  Can anyone shed any light?

Cheers,

Steve 

-- 
Steve Strong
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130208/79ec8368/attachment.htm>


More information about the erlang-questions mailing list