This file is indexed.

/usr/bin/pdl2 is in pdl 1:2.018-1ubuntu4.

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