develooper Front page | perl.perl5.porters | Postings from October 2021

Pre-RFC: no feature 'filetests';

Thread Next
From:
Paul "LeoNerd" Evans
Date:
October 1, 2021 16:23
Subject:
Pre-RFC: no feature 'filetests';
Message ID:
20211001172332.05b2a08f@shy.leonerd.org.uk
A thought which came up on Libera.chat / #perl just now:

In very maths-heavy code (e.g. involving 3D coordinates) it's often
useful to have things like X/Y/Z or i/j/k as your 3 basis vectors.

Expressions like  X+Y  or  X-Z  are fine, but perl will trip up over
Y-X because `-X` is a filetest operator; parsing this as a call to
Y( -X ) instead of Y() - X(). You have to play whitespace games
like `Y - X` or parens like `Y-(X)`.

Similar problems happen around -k.

Since it is highly unlikely you'd need to perform filesystem tests
during such mathsy code, it would be really handy if the filetest
`-x`-like operators were controlled by a (default-on) feature flag,
that could be turned off in such code:

  no feature 'filetests';

such that e.g.

  sweep(+X, -X);
  sweep(+Y, -Y);
  sweep(+Z, -Z);

now does what I meant.

I'm sure there's probably other unrelated fields [pardon the pun] in
which it'd be handy to have regular single-letter functions, for
which these filetests also get in the way.

[[Not directly related to this particular request, but a possible
  extension idea is to permit the "parse this numerical literal" part of
  the parser to accept some nicer notation, so you can write things like

    sweep(3i, -3i);
    sweep(2j+3k, -k);  # instead of  -1k
    etc...

  for which it would similarly be handy to turn off the parser's `-k`
  operator]]

-- 
Paul "LeoNerd" Evans

leonerd@leonerd.org.uk      |  https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/  |  https://www.tindie.com/stores/leonerd/

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About