Hacker, author, trainer
Technorati Profile [technorati.com]
I've taught beginners before. I know that beginners often get confused by the use of $ to denote single array elements (e.g. $array[0]). I know why they get confused but I think I'm pretty good at getting them to understand it - this is, at least, partly because I think that the rule makes sense.
Yesterday I gave my first beginners course for a while. More importantly it was the the first beginners course I'd given since we've known a lot about the shape of Perl 6.
As always, there was someone who didn't like array (and hash) elements using $. "Oh, I understand exactly why it's there", he said, "but I just don't think it's the most logical way to do it." Of course I disagreed with him and tried to bring him round to my way of thinking. I found this was harder than usual because I now know that in Perl 6 array elements will be accessed using @. It's a lot harder trying to explain away something as logical when you know that it's going to change in the near future.
Have any other trainers come across this problem?
Technology apologists (Score:2)
I've found it to be rather common to need to apologize for the state of the technology being presented. This could be something as simple as using $array[0] vs. @array[0] in Perl, or much more unfortunate like the state of XML. Most recently, I had to teach DTD syntax and usage to a bunch of programmers who were going to be using XML Schema, and had to defend DTDs, only to illustrate t
Re:Technology apologists (Score:1)
You make no apologies and just deal (Score:2)
Re:You make no apologies and just deal (Score:2)
Why is $array[0] such a bad thing? (Score:1)
Jason
Re:Why is $array[0] such a bad thing? (Score:1)
@$array[0] binds the @ more tightly than the [0], so it expects $array to be an array ref, which you're de-referencing, rather than $array[0] being the array ref. Except it doesn't work, because as you know, you don't say @x[0], you say $x[0], so when you say @$array[0], it thinks you're dereferencing $array, not @array, and $array doesn't exist (well it might, but it's not what you meant).
Now @{$x[0]} will give you the de-referenced array in the first entry in th
Perl to beginners (Score:1)
And as for Perl 6... I don't like scaring the novices with evil that hasn't yet come to pass.