... is a 3-in-one power house

I like that perl has stuff like ...

.. goes by many names, but it is actually 3 fairly neat things. perldoc

yada-yada - a placeholder for unimplemented code.

In void context ... is the "yada yada". It is fatal and dies with "unimplemented".

You can use this while planning out a module. You can quickly throw down a

sub write_me_later { ... }

... and when you call it (say from your tests) perl will remind you that you haven't written that sub yet.

A flip flop - with set/reset!

In scalar context it returns true after the thing on the left is true, until the thing on the right becomes true.

This is the set/reset behaviour of a "flip flop", and it is really helpful when parsing lines of a file.

while(<>) {
    if (/flip/.../flop/) {
        # every line between a flip and a flop (including the lines that do)
        say "flipped: $_"
    }
}

Simply /start-of-range/../end-of-range/ is true between those two matches.

Ranges - trade two numbers for many!

Unsurprisingly in list context ... gives a list, it works with similar rules to ++, so: - 1..10 gives you back the numbers you expect. - "OWF1".."OWF9" gives you back a list that includes "OWF6"

It's particularly handy for avoiding off-by-one's when looping over arrays:

for (0..$#array) { # No < @array... or is it <= @array?
    printf "I'm at index %s, which is: %s\n", $_, $array[$_] 
}

It all comes from context

I think it's very cool that 2 or 3 characters can do all of these things, and that their meaning comes entirely from the context.

That's it.

I just think that's neat.