Deleted my previous comment because it was wrong (I was saying that it didn't help with the names of subroutines). It appears you can even have subroutines named after keywords, but only as long as you put "&" in front of it when you call it:
sub while
{
print "It works!\n";
}
&while();
I guess it is still the case that you can break perl code by adding keywords, if it collides with a subroutine that is called with the "&" symbol. Seems most code doesn't use "&" though, but it's a relatively quick fix.
I believe the @ is used only by the obj-c keywords and not the ones from C. So it'll be something more like this
@autoreleasepool{
for (int index = 0; index < 100; index++){
int error = [MyObject performSelector:@selector(addCoolFilterToImage:)];
if (error) {
return 32;
}
}
}
Comments
Larry Wall (author of Perl) used this as an argument for "sigils", that is, putting $/@/% in front of every variable.
http://stackoverflow.com/questions/1091634/why-do-perl-varia...
(I merely state this as fact and offer no judgement!)
Deleted my previous comment because it was wrong (I was saying that it didn't help with the names of subroutines). It appears you can even have subroutines named after keywords, but only as long as you put "&" in front of it when you call it:
I guess it is still the case that you can break perl code by adding keywords, if it collides with a subroutine that is called with the "&" symbol. Seems most code doesn't use "&" though, but it's a relatively quick fix.Calling a sub with & has a special meaning, it exposes the current argument list @_ to the called sub. That's why you don't see it in most code.
I did not know that. Interesting. However, it only works if you call the sub without parentheses like this: &foo
Calling it with parentheses like &foo() would make @_ empty inside of foo. (Or if you said &foo("whatever") it would pass that as @_ instead.)
produces: as the output, and produces: as the output. At any rate, back to the original topic: it still doesn't prevent new keywords from potentially colliding. Oh well.I prefer the objective-c method of putting @ in front of every keyword.
Well, I might be upset if this were true for all keywords.
I'm a bit dizzy looking at that code, let me sit down for a moment.I believe the @ is used only by the obj-c keywords and not the ones from C. So it'll be something more like this
Yeah, that was kind of my point.