/usr/bin/pdl2 is in pdl 1:2.007-5.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | #!/usr/bin/env perl
BEGIN {
$ENV{DEVEL_REPL_PROFILE} = 'PDL::Perldl2::Profile::Perldl2';
# This should be based on
$HOME = $ENV{HOME}; # Useful in shell
if ($^O =~ /win32/i and
(! defined($HOME)) or
(defined($HOME) and $HOME eq "")) {
$HOME = $ENV{USERPROFILE};
$HOME =~ s/\\/\//g;
}
$ENV{PERLREPL_HISTFILE} = "$HOME/.perldl_hist";
$ENV{PERLREPL_HISTLEN} = 500;
}
BEGIN {
my $minversion = "1.003011";
eval " use Devel::REPL $minversion ";
if ($@) {
my ($perldl) = $0;
$perldl =~ s/pdl2$/perldl/;
warn "pdl2: Devel::REPL version $minversion not found, running '$perldl' instead...\n";
do $perldl;
warn "pdl2: could not 'do $perldl'\n";
$perldl =~ s{^[^/\\]*[/\\]}{};
do $perldl;
die "pdl2: could not 'do $perldl'\n";
}
}
use PDL::Perldl2::Script 'run';
__END__
=head1 NAME
pdl2 - Simple shell (version 2) for PDL
=head1 SYNOPSIS
Use PDL interactively:
%> pdl2
pdl> $a = sequence(10) # or any other perl or PDL command
pdl> print "\$a = $a\n";
$a = [0 1 2 3 4 5 6 7 8 9]
=head1 DESCRIPTION
The C<pdl2> program, also known as the Perldl2 shell, is a second
generation version of the original C<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 L<Devel::REPL|Devel::REPL> shell.
If you have L<Devel::REPL|Devel::REPL> version 1.003011 or later, then C<pdl2>
will start with full functionality. If L<Devel::REPL|Devel::REPL> is not
installed or found then C<pdl2> will print a warning and run
the legacy C<perldl> shell command instead.
By default, command lines beginning with the default prompt
of either C<pdl2> or C<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.
=head1 FUNCTIONS
=head2 do_print
=for ref
Toggle print-by-default on and off (default value: off)
By default, C<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 I<every> operation. The
C<do_print> routine allows you to toggle between the default
"quiet" operation and a full Read, Evaluate, Loop style.
=for example
pdl> $a = pdl(3,2)
pdl> do_print
1
pdl> $a = pdl(3,2)
$PDL1 = [3 2];
pdl> do_print
pdl> $a = pdl(3,2)
=head1 VARIABLES
=over 4
=item $PDL::toolongtoprint
The maximal size pdls to print (defaults to 10000 elements).
This is not just a C<perldl> or C<pdl2> variable but it is
something that is usually needed in an interactive debugging
session.
=back
=head1 SEE ALSO
L<perldl>, L<Devel::REPL>
=cut
|