this post was submitted on 12 Mar 2024
1090 points (95.7% liked)

Programmer Humor

32078 readers
246 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

Please dont take this seriously guys its just a dumb meme I haven't written a single line of code in half of these languages

you are viewing a single comment's thread
view the rest of the comments
[โ€“] palordrolap@kbin.social 11 points 6 months ago* (last edited 6 months ago) (1 children)

Over the top tone: "Pretty sure that won't compile. $EVAL_ERROR modulo what you get from the filehandle called = isn't an lvalue that can be put through the Goatse operator that I'm aware of."

But seriously(?), I'm almost certain that's not how that would be parsed. = isn't a valid bareword, so Perl would choke on the spaceship operator not being a term... I think.

After testing... It's worse. I think it's parsing <> as the glob operator and = as a filespec.

For those who don't know Perl:

Because of its appearance, <=> really is called the spaceship operator (at least, when it can be parsed as an operator and not whatever happened above).

=()= by comparison has unofficially been called Goatse. If you don't know what Goatse is, find out at your own risk. If you do know, you can see why this particular pseudo-operator was given that name.

And if you're still reading, =()= is a pseudo-operator because it's not actually parsed as part of the syntax. It's literally an assignment operator = followed by an empty list () followed by another assignment operator =, providing list context to the outside of the equals signs that wouldn't otherwise be there.

[Why are you still still reading?] Context is important in Perl. If a function returns a list of values (which is something Perl functions can do) and you try to store the result in a scalar variable, replacing the usual = with =()= will store the number of elements returned rather than the last element of the list.

[โ€“] neidu2@feddit.nl 8 points 6 months ago* (last edited 6 months ago)

It's not supposed to be compilable. It's more intended as a list of weird looking (but valid and useful) perl stuff.

As for the goatse operator, I've mostly used it for counting amount of regex matches.

Oh, and I forgot the diamond operator. Added.