On Sun, Apr 29, 2018 at 10:20:48PM -0700, ToddAndMargo wrote:
On 04/29/2018 10:12 PM, ToddAndMargo wrote:
On 04/29/2018 09:32 PM, Andrew Kirkpatrick wrote:
There is not enough context to answer or even reproduce the problem -
how are the variables declared and what values do they have just prior
to this line?
Some simpler examples:
$ perl6 -e 'my $x="abcde<br>"; say $x;'
abcde<br>
$ perl6 -e 'my $x="abcde"; my $y="$x" ~ "<br>"; say $y;'
abcde<br>
$ perl6 -e 'my $x="abcde"; my $y="$x<br>"; say $y;'
Type Str does not support associative indexing.
in block <unit> at -e line 1
$ perl6 -e 'my $x="abcde"; my $y="{$x}<br>"; say $y;'
abcde<br>
$ perl6 -e 'my $x="abcde"; my $y="$x\<br\>"; say $y;'
abcde<br>
So when is "<" and ">" a letter and when is it a redirect?
On 04/30/2018 12:09 AM, Patrick Spek wrote:
> It seems like in the one case it throws an error, it's because `<>`
are being
> used to index a hash. Or at least tried to. In Perl 6, you can access
a Hash's
> elements using `%foo<bar>`, which will access the index `bar` on the Hash
> `%foo`.
>
> The other cases are explicitly not referring to a variable, or have
delimiters
> in place to make it known to the compiler that you're not trying to
access a
> Hash index.
>
> The error you're getting is "Type Str does not support associative
indexing.",
> which is correct, though perhaps a little unexpected for you. `$x`
contains a
> Str, not a Hash, but the `<br>` still try to retrieve the index `br`
from it.
> The solution is to use any of the other options you're using, with my
personal
> preference going out to `{$x}<br>`.
>
Hi Patrick,
Now it makes sense. It was trying to resolve a hash.
Thank you!
-T
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Computers are like air conditioners.
They malfunction when you open windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~