The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

builtins::compat - install all the new builtins from the builtin namespace (Perl 5.36+), and try our best on older versions of Perl

SYNOPSIS

  use 5.008001;          # Or later
  use builtins::compat;  # Loads all new builtins
  
  # So now we can write...
  if ( reftype($x) eq 'ARRAY' || blessed($x) ) {
      print refaddr($x), "\n";
      if ( is_weak($x) ) {
          unweaken($x);
          print ceil( refaddr($x) / floor($y) ), "\n";
          weaken($x);
          print trim($description), "\n";
      }
  }

DESCRIPTION

This module does the same as builtins on Perl 5.36 and above. On older versions of Perl, it tries to implement the same functions and then clean them from your namespace using namespace::clean.

The pre-5.36 versions of created_as_number, created_as_string, and is_bool may not be 100% perfect implementations.

IMPORT

To import the functions provided in Perl 5.36:

  use builtins::compat qw( :5.36 );

If future versions of Perl add more functions to builtin, then these will be provided under different version number tags.

Importing use builtins::compat with no arguments will import the Perl 5.36 builtins, even if you're using a newer version of Perl.

You can import only specific functions by listing their names:

  use builtins::compat qw( refaddr reftype );

You can exclude specific functions by name too. For all the Perl 5.36 functions except indexed:

  use builtins::compat qw( :5.36 !indexed );

BUGS

Please report any bugs to https://github.com/tobyink/p5-builtins-compat/issues.

SEE ALSO

builtins, builtin, Scalar::Util.

AUTHOR

Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE

This software is copyright (c) 2022 by Toby Inkster.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.