Hacker News new | ask | show | jobs
by AndrewDavis 320 days ago
Not sure if you've deliberately put in two bugs there haha

1. shift only shifts off the first element.

2. (if classify this as a bug) using $a and $b are frowned upon because they're the default variables when using sort.

2 comments

Oh wow I had forgotten about default variables. Such a lovely and inscrutable idea.
Ha, (1.) was deliberate but I'd forgotten (2.)
Yeah, you probably want

  my ($x, $y, $z) = @shift;
:-D
For reference:

Valid is either

   sub () {
     my ($x, $y, $z) = @_;
or

   sub ($x, $y, $z) {
I should have said

  my ($x, $y, $z) = @$_[0];
but I was making a joke.

If $_[0] is an array reference, @$_[0] becomes a list.

The joke was a reference to most wrong Perl programs being valid for something.

Hence the meme: "93% of Paint Splatters are Valid Perl Programs"

https://www.mcmillen.dev/sigbovik/

Why the empty prototype in the first alternative?
yeah, you could leave that out, but then I have to invent a name
Really? Anonymous subroutines/coderefs are defined with sub {} are they not?