| ▲ | eduction 3 hours ago | |
Perl heads are downvoting you but I agree as a longtime ex Perl user that the sigils were noisy nonsense. The original intent was you could see var types with them - $scalar, @array, %hash. They immediately broke this by deciding the sigil would apply to the value /extracted/ from the data structure. So you declared array @foo but accessed an element as $foo[1]. What? There’s a logic there but already you’re violating many people’s expectations so why even have them. The sigils are now confusing many people instead of clarifying anything. The sigil idea then /completely/ failed when they introduced references and “complex data structures” (nesting arrays within arrays like every other language - in Perl this was a special thing because they had been flattening lists by default so no way to put one inside another). So now to get at a hash in a hash you used not % but $ since a reference is a scalar. $hash1->$hash2->{“key”}. Versus $hash3{“key”} for a simple hash. Just awful noisy syntax. Due to poor language design up front. | ||
| ▲ | kstrauser 8 minutes ago | parent | next [-] | |
That last paragraph got me off Perl to Python. The first time I wrote Python like hash1[hash2]["key"] and it worked, then tried hash1[hash2]["array_name"][3] and it worked because that's the obvious way to write something, I fell in love and never looked back. I never wanted to have to reason my way through chasing pointers through nested hashrefs again. | ||
| ▲ | nagaiaida an hour ago | parent | prev | next [-] | |
and people wonder why raku had so many things it needed to change to free the excellent core of the language and its ideas | ||
| ▲ | eduction 2 hours ago | parent | prev | next [-] | |
Oops last example should be $hash1->{“hash2”} - this is a whole hash referenced with $ because of the implementation detail that it is in hash1 as a reference, which is considered a scalar. Technically you are allowed to use % like so: %{$hash1->{“hash2”}}. Which, just - lol. | ||
| ▲ | tguvot 2 hours ago | parent | prev [-] | |
Before that job in perl i wrote asm/tcl/delphi/c/php (and bunch of other languages after). This perl syntax caused some kind of rejection on almost physical level. It was same for many of my friends. "Zen of python" was a breath of fresh air. | ||