<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body dir="ltr" bgcolor="#ffffff" text="#000000">
Gabor Szabo wrote:
<blockquote
 cite="mid:d8a74af10910241401t7e4a7b60n5af9b73359332d24@mail.gmail.com"
 type="cite"><br>
  <pre wrap="">
err, I don't think that "casting" is the right word to use here. What
{} does here is
disambiguates the expression.</pre>
</blockquote>
Let me try to summarize what I understood from your excellent
explanation:<br>
<br>
Putting a modifier in front of a reference dereference it to the right
type ($ for scalar etc.). Alternatively, putting a '-&gt;' (which is a
unary operator, not a binary one) also dereferences it, no matter what
it is pointing to.(at least for array and hash), so long as there is
some reference to its content on the operator's right (the same as it
is implemented in C++, only more confusing).<br>
<br>
The curly braces act as a scoping operator, making the $/@/% relation
to parts of the expression unique.<br>
<br>
All that is left is understanding why the round braces around the whole
expression.<br>
<br>
Many thanks (the explanation was very useful)<br>
Shachar<br>
<br>
<pre class="moz-signature" cols="72">-- 
Shachar Shemesh
Lingnu Open Source Consulting Ltd.
<a class="moz-txt-link-freetext" href="http://www.lingnu.com">http://www.lingnu.com</a>
</pre>
</body>
</html>