Bug#931418: perl: no errors with strict subs and bareword following a minus operator

Vincent Lefevre vincent at vinc17.net
Thu Jul 4 16:30:00 BST 2019


On 2019-07-04 16:57:22 +0300, Niko Tyni wrote:
> and the following passage in perlop:
> 
>     Unary "-" performs arithmetic negation if the operand is numeric,
>     including any string that looks like a number. If the operand is an
>     identifier, a string consisting of a minus sign concatenated with
>     the identifier is returned.
> 
> So it looks like this is intentional or at least documented
> behaviour that we're stuck with.

No, that's just the default behavior, without strict subs.
Similarly, the perlop(1) man page says:

  Unary "+" has no effect whatsoever, even on strings. [...]

Thus:

zira:~> perl -e 'my $x = -Inf; print "$x\n";'
-Inf
zira:~> perl -e 'my $x = +Inf; print "$x\n";'
Inf

as documented. But with "use strict;", the one with +Inf gives
an error, but not the one with -Inf.

-- 
Vincent Lefèvre <vincent at vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)




More information about the Perl-maintainers mailing list