escript
- это просто некоторый код erlang, и no match error
происходит, когда что-то справа от знака равенства (который является оператором совпадения в erlang) не соответствует тому, что включено левая сторона знака равенства. Вот простой пример:
1> X = 20.
20
2> 3 = X.
** exception error: no match of right hand side value 20
Поскольку 3
не соответствует значению X
, т. Е. 20
, вы получаете ошибку совпадения, за которой следует любое значение справа, которое в данном случае равно 20.
В вашем случае значение с правой стороны - это опубликованный вами кортеж, что, очевидно, является ошибкой, возвращаемой любым выражением, которое было справа от рассматриваемого знака равенства. Например:
3> {ok, file} = file:open("non-existent", read).
** exception error: no match of right hand side value {error,enoent}
В этом примере file:open()
вернул кортеж, начинающийся с атома error
:
{error, enoent}
, который никогда не может соответствовать кортежу с левой стороны от знака равенства, начинающегося с атома ok
:
{ok, file}
Что-то в коде сценария, который вы запустили, создал malformed_url
.