4 ms·
Perl is a general purpose programming language. The Perl interpreter and language are stable, it's not going anywhere soon. Perl and its syntax have been around
by roryrjb 7y ago
Perl is a general purpose programming language. The Perl interpreter and language are stable, it's not going anywhere soon. Perl and its syntax have been around a lot longer than most other languages and is very similar to C, C++, JavaScript and PHP. What do you consider normal syntax?
- vultour 7y agoThe most obnoxious parameter passing in existence? The magic variables everywhere? Perl code is an unreadable heap of spaghetti, I’d much rather be figuring out unallocated memory bugs in C then read Perl.
- nerdponx 7y agoDon't forget sigils. Because the difference between @foo and $foo is obvious, right?
- cygx 7y agoThat difference is indeed obvious. The issue is sigil variance.
- roryrjb 7y agoNot to someone who doesn't know Perl. But this is the same for every language. No one should be picking up a new language and working with it if they don't know it. EDIT: To clarify, I mean there should never be the expectation that you can start working in a language in earnest without properly learning it.
- yellowapple 7y ago@ → A → array $ → S → scalar That's how I learned and remember them. What makes that less obvious is when you work with references to arrays; the reference itself is a scalar, so it gets the scalar sigil. You can dereference it, though, by sticking an array sigil in front of it, thus telling the interpreter "hey, this is a scalar reference to an array".
- roryrjb 7y agoBut why obnoxious? Do you know how old Perl is? Have you written shell scripts before? My point is, some of choices Larry and others made wouldn't necessarily be made today, but there's a history, a lineage, a reason for all of this. I actually like the magic variables, but as I said in my other comment, you need to learn it first. X language is an unreadable heap of spaghetti if the programmer writes X language in an unreadable way.
- hedora 7y agoIs its function parameter passing really more obnoxious than python, which lets you mutate the default parameter across calls: def foo(bar=Bar(1)): Unless bar is a primitive type, in which case each invocation gets the same value? def foo(bar=1): Perl wears its idiosyncrasies as badges of honor. Python keeps them hidden so they can sneak up on you when you least expect it.
- cutler 7y ago"Vell, zis is perfectly normal behaviour for a python", to rephrase Gag Halfront.