Skip to content

Comment on Perlsecret – Perl secret operators and constants

Comments

I didn't know ~- and -~ had a name, I have been using them in many (non-production) places where I wanted to save 2 bytes.

But looks like Perl's implementation is more limited compared to other languages:

    % perl -e 'print ~-(0), "\n"'
    18446744073709551615
    % ruby -e 'print ~-(0), "\n"'
    -1
https://metacpan.org/dist/perlsecret/view/lib/perlsecret.pod...

You're not using `integer` in the perl example like you're supposed to. Try

    perl -Minteger -E 'say ~-0'
and it should work as expected.

That is true, but for the kind of code where I might use this trick, there usually aren't enough `~-$x` for `use integer;` to be worthwhile, I would just do `($x-1)` instead.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.