As @ikegami says,
use PDL::Core ':Internal';
is indeed equivalent to
use PDL::Core qw( howbig broadcastids topdl );
This can be seen in the implementing code on GitHub. However, as can also be seen there, use PDL::Core;
imports considerably more than just qw(piddle pdl null barf)
.
The three "internal" routines respectively give how many bytes for a given PDL-internal datatype ID, which dimensions in an ndarray have been marked for broadcasting, and converting any Perl value to an ndarray if it isn't one already. The last two should probably always be called as a method (respectively object and class), and the first one is not useful for normal PDL use (which is generally maths-y). They are all still available via the PDL::Core
package, just not exported.
Generally speaking, it isn't recommended practice to explicitly import PDL::Core
, nor any of the "core" PDL packages (PDL::Primitive
, PDL::Ops
, etc); instead import one of PDL::LiteF
(only exports minimal functions) or PDL::Lite
(exports none). use PDL
imports extra non-"core" packages such as PDL::IO::FITS
for historical reasons.