---
name: "pdl2"
section: "1p"
platform: "linux"
package: "libpdl-perldl2-perl"
version: "2.002-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/pdl2"
---

# pdl2(1p)

Simple shell (version 2) for PDL

## NAME

pdl2 - Simple shell (version 2) for PDL

## SYNOPSIS

Use PDL interactively:

```
  %> pdl2
  pdl> $x = sequence(10)  # or any other perl or PDL command
  pdl> print "\$x = $x\n";
  $x = [0 1 2 3 4 5 6 7 8 9]
  pdl> with_time { print +($A->matmult($B))->info, "\n" } for 1..5;
```

## DESCRIPTION

The `"pdl2"` program, also known as the Perldl2 shell, is a second generation version of the original `"perldl"` interactive PDL shell. It attempts to be backward compatible in usage while providing improved features, better support for Perl syntax, and an more easily extended framework based on the Devel::REPL shell.

If you have Devel::REPL version 1.003011 or later, then `"pdl2"` will start with full functionality.  If Devel::REPL is not installed or found then `"pdl2"` will print a warning and run the legacy `"perldl"` shell command instead.

By default, command lines beginning with the default prompt of either `"pdl2"` or `"perldl"` (one of 'pdl\> ', 'PDL\> ', or 'perldl\> ') will have the prefix string and surrounding whitespace stripped.  This allows for easy cut-and-paste from sample PDL shell sessions or other examples into another PDL shell session.

For shell-like `"Ctrl-C"` handling, you need Sys::SigAction installed.

## FUNCTIONS

### do\_print

Toggle print-by-default on and off (default value: off)

By default, `"pdl2"` does not print the results of operations since the results can be very large (e.g., a small 640x480 RGBA image is still more than 1\_000\_000 elements).  However, for experimenting and debugging more complex structures, it helps to see the results of *every* operation.  The `"do_print"` routine allows you to toggle between the default "quiet" operation and a full Read, Evaluate, Loop style.

```
  pdl> $x = pdl(3,2)
  pdl> do_print
  1
  pdl> $x = pdl(3,2)
  $PDL1 = [3 2];
  pdl> do_print
  pdl> $x = pdl(3,2)
```

## VARIABLES

- $PDL::toolongtoprint

  The maximal size pdls to print (defaults to 10000 elements). This is not just a `"perldl"` or `"pdl2"` variable but it is something that is usually needed in an interactive debugging session.

## SEE ALSO

perldl, Devel::REPL
