in reply to Re^2: Calling a sub without enclosing its argument inside brackets
in thread Calling a sub without enclosing its argument inside brackets

It would be much better, IMO, if I could just use palt() every time I wanted to print anything

Perhaps a better solution would be a module/pragma that changed the behaviour of print so that it performed as palt does.

use strict; use warnings; use palt; # <- new module/pragma print "This is a palt style print\n";

Is that possible?
Can pragmas be written or are they part of the Perl release?

Replies are listed 'Best First'.
Re^4: Calling a sub without enclosing its argument inside brackets
by kcott (Archbishop) on Mar 19, 2024 at 02:11 UTC
    "Can pragmas be written or are they part of the Perl release?"

    Many pragmata form part of the core Perl distribution: see "Pragmatic Modules".

    As of Perl v5.10, you can write your own. The core doco perlpragma explains how to do this.

    — Ken

      The core doco perlpragma explains how to do this.

      The main drawback to that approach for my little project is the additional overhead of having to turn perl scalars into Math::Ryu objects and then overloading their stringification.
      It's probably not such a big deal, but then neither is the original issue ;-)
      BTW, in the Math::Ryu github repo, the function is named "pany", not "palt" - neither of which have yet appeared in a cpan release of the module.

      AFAICT, the "integer" pragma doesn't rely on module objects and operator overloading.
      I speculate that it's functionality is built into the perl source, thereby avoiding the need for objectification and operator overloading.

      OTOH, "bignum", "bigrat", "bigint" and "bigfloat" are clearly built on Math::BigInt, Math::BigRat and Math::BigFloat, and use the overloading that those 3 modules provide.

      It's all interesting stuff ...

      Cheers,
      Rob