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 . SEE ALSO builtins, builtin, Scalar::Util. AUTHOR Toby Inkster . 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.