### PDL Tutorials and Examples Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Documentation and resources for learning PDL, including tutorials and quick start guides. These are valuable for new and intermediate users. ```perl use PDL::Tutorials; ``` -------------------------------- ### Install PDL Perl Modules using CPAN Shell Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Ubuntu-7.10-Gutsy-Gibbon This section demonstrates how to enter the CPAN shell and install the necessary Perl modules, ExtUtils::F77 and PGPLOT, which are required for PDL's plotting capabilities. It guides through manual configuration prompts. ```bash sudo perl -MCPAN -e shell # Type 'no' when asked about manual configuration install ExtUtils::F77 install PGPLOT # Press ENTER for default plot tests exit ``` -------------------------------- ### Install PDL and PGPLOT Dependencies via Synaptic Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Ubuntu-7.10-Gutsy-Gibbon This describes the steps to search for and mark PDL, pgplot5, libterm-readline-gnu-perl, g77, libc6-dev, libx11-dev, and netpbm for installation using the Synaptic Package Manager. It also mentions installing suggested packages. ```bash # Search for pdl # Mark for installation # Search for pgplot5 # Mark for installation # Search for libterm-readline-gnu-perl, g77, libc6-dev, libx11-dev, netpbm # Mark for installation along with suggested packages # Click Apply to install all marked packages ``` -------------------------------- ### Using the PDL Interactive Shell (perldl) Source: https://context7.com/pdlporters/pdl/llms.txt Provides instructions and examples for using the `perldl` interactive shell. It covers starting the shell, getting help on functions, exploring data with commands like `p` and `info`, running demos, and basic shell features like history and multiline input. ```shell # Start the shell from command line: # $ perldl # or # $ pdl ``` ```perl # Inside perldl: # Get help on functions pdl> help sum pdl> apropos matrix # Search for functions containing 'matrix' pdl> help # General help # Quick data exploration pdl> $x = sequence(10) pdl> p $x # Print shortcut [0 1 2 3 4 5 6 7 8 9] pdl> p $x->info # Array information PDL: Double D [10] pdl> p $x->stats # Statistical summary # Mean, Prms, Median, Min, Max, Adev, Rms # Run demos pdl> demo # List available demos pdl> demo 3d # Run 3D graphics demo # History and editing pdl> # Use up/down arrows for command history pdl> # Use standard readline editing # Configuration in ~/.perldlrc # Add custom startup commands, aliases, etc. # Multiline input pdl> for $i (1..5) { print $i, "\n"; } # Quick plotting (if PDL::Graphics::* available) pdl> use PDL::Graphics::Simple pdl> $w = pgswin() pdl> $w->plot(sin(sequence(100)/10)) # Exit pdl> quit # or Ctrl-D ``` -------------------------------- ### Launch PDL Environment Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-a-Linux-Debian-based-operating-system-for-power-users Starts the interactive Perl Data Language shell and accesses the built-in demonstration suite. ```bash perldl # Inside the perldl prompt: demo ``` -------------------------------- ### Add Debian Repository to Synaptic Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Ubuntu-7.10-Gutsy-Gibbon This snippet shows the APT line to add the Debian stable repository for installing PDL and its dependencies via Synaptic Package Manager. Ensure your system has internet access before proceeding. ```text deb http://ftp.debian.org stable main contrib non-free ``` -------------------------------- ### Starting the PDL Shell and Basic Variable Declaration Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-IDL-users Demonstrates how to start the PDL shell and declare variables, comparing the syntax with IDL. PDL uses the 'perldl' command and the 'pdl' constructor, while IDL uses its own shell and syntax. ```idl ; IDL IDL> A = [1,2,3,4] IDL> print, A ``` ```perl # PDL perldl> $A = pdl [1,2,3,4] perldl> print $A ``` -------------------------------- ### Launch PDL Interactive Shell Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Gentoo Starts the PDL interactive shell, providing a prompt for executing PDL commands and accessing its functionalities. This command should be run as a regular user, not as root. ```bash perldl ``` -------------------------------- ### Compile and Install Pixman and Cairo Graphics Libraries Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Instructions for compiling and installing Pixman and Cairo, which are prerequisites for certain Cairo graphics functionalities. This involves downloading the source code, configuring the build, compiling, and installing the libraries. ```bash ./configure make sudo make install ``` -------------------------------- ### Usage of PDL::IO::Pic Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Example commands to load the image I/O module and write a piddle to a TIFF file within the PDL shell. ```perl use PDL::IO::Pic; $a = ones(5,4)->random; wpic $a, 'foo.tif'; ``` -------------------------------- ### Install Karma Libraries via Shell Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Commands to download and install the Karma software suite using rsync and the provided installation script. ```bash $ rsync -a rsync.science-software.net::karma/common/ /usr/local/karma $ /usr/local/karma/csh_script/install-karma ``` -------------------------------- ### Build and Install NetPBM Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Commands to checkout, configure, and install the NetPBM library required for PDL::IO::Pic functionality. ```shell svn checkout http://netpbm.svn.sourceforge.net/svnroot/netpbm/advanced netpbm cd netpbm ./configure make make package pkgdir=foo sudo ./installnetpbm ``` -------------------------------- ### Configure Cairo Graphics Build Options Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Example output from Cairo's configure script, detailing the enabled and disabled surface backends, font backends, and internal features. This helps in understanding the capabilities of the compiled Cairo library and potential build issues. ```text cairo (version 1.8.10 [release]) will be compiled with: The following surface backends: Image: yes (always builtin) Xlib: yes Xlib Xrender: yes Quartz: yes Quartz-image: no (disabled, use --enable-quartz-image to enable) XCB: no (disabled, use --enable-xcb to enable) Win32: no (requires a Win32 platform) OS2: no (disabled, use --enable-os2 to enable) PostScript: yes PDF: yes SVG: yes glitz: no (disabled, use --enable-glitz to enable) BeOS: no (disabled, use --enable-beos to enable) DirectFB: no (disabled, use --enable-directfb to enable) The following font backends: User: yes (always builtin) FreeType: yes Win32: no (requires a Win32 platform) Quartz: yes The following functions: PNG functions: yes And the following internal features: gcov support: no test surfaces: no (disabled, use --enable-test-surfaces to enable) ps testing: yes pdf testing: no (requires poppler-glib >= 0.9.2) svg testing: no (requires librsvg-2.0 >= 2.15.0) ``` -------------------------------- ### Configure PDL Build Settings Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Examples of key-value pairs within the %PDLCONFIG hash used to control build features like HTML documentation, bad value handling, and 3D graphics support. ```perl HTML_DOCS => 1, TEMPDIR => undef, HIDE_TRYLINK => 1, OPTIMIZE => undef, WITH_POSIX_THREADS => undef, MALLOCDBG => undef, WITH_BADVAL => 1, BADVAL_USENAN => 0, BADVAL_PER_PDL => 0, WITH_3D => 1, USE_POGL => undef, POGL_VERSION => 0.62, POGL_WINDOW_TYPE => 'glut' ``` -------------------------------- ### Verify PDL::Sumprod installation with Perl Source: https://github.com/pdlporters/pdl/wiki/Example/How-to-call-C-and-FORTRAN-functions-from-PDL A test script to verify that the PDL::Sumprod module is correctly installed and accessible. It initializes PDL objects and executes the suma, producto, and prodexp functions to print results. ```perl #!/usr/bin/env perl use PDL; use PDL::Sumprod; $a=pdl([1,2,3,4]); $b=pdl([5,6,7,8]); $c=suma($a,$b); print $c,"\n"; print "ok 1\n"; $c=producto($a,$b); print $c,"\n"; print "ok 2\n"; $c=prodexp($a,$b); print $c,"\n"; print "ok 3\n"; ``` -------------------------------- ### Perl References: Creating and Dereferencing Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-IDL-users Shows examples of creating references to scalars and arrays in Perl using the backslash operator and how to dereference them to access the original data. ```perl $aref = $a $A = $$aref $A = ${$aref} bref = @b @B = @$bref $B = ${$bref}[2] $B = $bref->[2] ``` -------------------------------- ### Build and Install Perl from Source Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Standard Unix-style build process for installing Perl from source code. This ensures a clean, custom version of Perl is used instead of the system default. ```bash ./configure make make test sudo make install ``` -------------------------------- ### Install App::cpanminus Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-Using-cpanm Installs the cpanm script, a lightweight tool for fetching, building, and installing Perl modules from CPAN. ```bash curl -L http://cpanmin.us | perl - --sudo App::cpanminus ``` -------------------------------- ### Build and Install PDL Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Standard sequence of commands to configure, build, test, and install the Perl Data Language from source. ```shell perl Makefile.PL make make test sudo make install ``` -------------------------------- ### Install PDL-Graphics-PLplot via PPM Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Windows Installs the alternative PDL-Graphics-PLplot package which includes shared library support for PNG output. Requires the --force flag to ensure correct installation from the sisyphusion repository. ```shell ppm install http://www.sisyphusion.tk/ppm_alt/PDL-Graphics-PLplot_alt.ppd --force ``` -------------------------------- ### Install cpanminus from Source Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Clones the cpanminus repository and installs it using the standard Perl Makefile workflow. cpanminus is recommended for easier management of Perl modules. ```bash git clone git://github.com/miyagawa/cpanminus.git cd cpanminus perl Makefile.PL make install ``` -------------------------------- ### Configure PGPLOT Drivers Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Cygwin Commands to extract the PGPLOT archive, initialize the installation directory, and filter the active drivers from the drivers.list configuration file. ```bash tar xzf pgplot5.2.tar.gz cd ~/pgplot mkdir /usr/local/pgplot cp drivers.list /usr/local/pgplot/ cd /usr/local/pgplot grep -v '^!' drivers.list ``` -------------------------------- ### Install PDL-Fit-Levmar via PPM Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Windows Installs the PDL-Fit-Levmar package. Note that this package is only compatible with Perl builds where 'perl -V:ivsize' returns 4. ```shell ppm install http://www.sisyphusion.tk/ppm/PDL-Fit-Levmar.ppd --force ``` -------------------------------- ### Standard Unix Source Compilation Pattern Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X The standard sequence of commands used to compile and install software dependencies from source code on Unix-like systems. ```bash $ ./configure $ make $ sudo make install ``` -------------------------------- ### Install Perl Modules with cpanminus Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Command-line usage for installing Perl modules using cpanminus. This is the preferred method for dependency management. ```bash sudo cpanm Foo::Bar::Baz ``` -------------------------------- ### Install PDL Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-Using-cpanm Installs the PDL package from CPAN. Includes commands for both the latest stable release and specific developer releases via URL. ```bash sudo cpanm -v PDL sudo cpanm http://cpan.metacpan.org/authors/id/C/CH/CHM/PDL-2.4.9_016.tar.gz ``` -------------------------------- ### PDL Testing and Transformations Documentation Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Documentation for PDL's testing framework and transformation utilities, including cartographic transformations. ```perl perldoc PDL::Tests perldoc PDL::Transform perldoc PDL::Transform::Cartography ``` -------------------------------- ### Compile and Install Cairo Graphics Library Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Commands to compile and install the Cairo graphics library after configuration. This step is crucial for enabling various graphics output formats supported by Cairo. ```bash make sudo make install ``` -------------------------------- ### Initialize SDL Application and Draw Sine Wave Source: https://github.com/pdlporters/pdl/wiki/Example/Animation-with-SDL Demonstrates the initialization of an SDL application window and the manual drawing of a sine wave using SDL::Rect as a pen. This example highlights the low-level nature of SDL graphics and serves as a basic implementation pattern for custom rendering. ```perl #!/usr/bin/perl use warnings; use strict; use SDL; use SDL::App; use SDL::Rect; use SDL::Color; # User defined pen-nib size. my $nib_size = 3; # Create the SDL App my $app = SDL::App->new( -width => 640, -height => 480, -depth => 16, -title => "Hello, World!", ); # our nib will be white my $nib_color = SDL::Color->new( -r => 0xff, -g => 0xff, -b => 0xff, ); # and our nib will be represented by a rectangle my $nib = SDL::Rect->new( -height => $nib_size, -width => $nib_size, ); # now draw a sine wave my $t = 0; my $t_step = 2**-4; for($t = 0; $t < 10; $t += $t_step) { # Drawing logic would follow here } ``` -------------------------------- ### Getting PDL Array Dimensions Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-Matlab-users To get the size of the longest dimension in a PDL array, calculate it using 'pdl($pdl->dims)->max'. The 'dims' method returns a Perl list of dimensions. ```perl use PDL; my $matrix = pdl([[1, 2, 3], [4, 5, 6]]); # Get dimensions as a Perl list my @dims_list = $matrix->dims; print "Dimensions list: @dims_list\n"; # Get the size of the longest dimension my $max_dim_size = pdl(@dims_list)->max; print "Max dimension size: $max_dim_size\n"; # Output: # Dimensions list: 2 3 # Max dimension size: 3 ``` -------------------------------- ### Run PDL Demos Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Gentoo Executes the built-in demonstration scripts within the PDL interactive shell to showcase its capabilities. This command is run after launching the perldl prompt. ```bash demo ``` -------------------------------- ### Initialize Simulation Parameters with Variables and Gaussian Velocities in Perl Source: https://github.com/pdlporters/pdl/wiki/Example/Animation-with-SDL This Perl code snippet demonstrates the initialization of system parameters for the particle simulation. It introduces variables like '$particle_size' for better readability and uses 'grandom' to generate velocities from a Gaussian distribution, providing more realistic particle movement. ```perl # Set up the system parameters, including random positions and velocities. my $d_t = 2**-3; my $side_length = 200; my $particle_size = 5; my $numb_of_atoms = 100; my $positions = random(2, $numb_of_atoms) * $side_length; my $velocities = grandom(2, $numb_of_atoms) * 5; ``` -------------------------------- ### IDL Variable Assignment Examples Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-IDL-users Demonstrates how to assign values to variables in IDL, including integers, arrays, and structures. IDL variables are typed and referred to by name. ```idl A = 5  ; assign 5 to the variable A (short int by default) B = indgen(5)  ; assign [0,1,2,3,4] to B (short int by default) C = findgen(1e6)  ; assign [0..999999] to C (floats) D = {a:1,b:2,c:3} ; Set D to be an IDL structure ``` -------------------------------- ### PDL Optimization and Minuit Documentation Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Documentation for PDL's optimization routines, including simplex methods and the Minuit package for function minimization. ```perl perldoc PDL::Minuit perldoc PDL::Opt::Simplex ``` -------------------------------- ### Perl/PDL Variable Assignment Examples Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-IDL-users Shows equivalent variable assignments in Perl/PDL, illustrating the use of sigils ($ for scalars, @ for lists, % for hashes) to denote variable types and namespaces. ```perl $a = 5; # assign 5 to the perl scalar A @b = (0..4); # assign the list (0,1,2,3,4) to B $c = xvals(1e6); # Assign the sequence 0..999999 to C. %d = (a=>1,b=>2,c=>3); # Set %d to be a perl hash. ``` -------------------------------- ### PDL Elementwise Assignment Example Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-IDL-users Demonstrates how to assign values to a subset of a PDL using elementwise assignment. This method copies elements individually into the lvalue, modifying the original PDL. ```perl $a = zeroes(3,3); $a->diagonal(0,1) .= pdl(1,2,3); print $a; ``` -------------------------------- ### Perl Conditional Statement Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-Matlab-users A standard 'if-elsif-else' conditional statement in Perl. It mirrors the logic of the MATLAB example, comparing a value against maximum and minimum thresholds. The 'print' function is used for output, and variables are prefixed with '$'. ```perl # Perl conditional if ($value > $MAX) { print "Value too large\n"; } elsif ($value < $MIN) { print "Value too small\n"; } else { print "Value is perfect\n"; } ``` -------------------------------- ### Create and Inspect a 2D PDL Array Source: https://github.com/pdlporters/pdl/wiki/Documentation/Wikibook/Introduction-to-PDL-Threading Demonstrates creating a 2D array using `sequence` and inspecting its dimensions and information using `->dims` and `->info`. ```PDL pdl2 $a = sequence(11,9); p p $a; p $a->dims; p $a->info; ``` -------------------------------- ### PDL Header Manipulation Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-IDL-users Illustrates how to set, get, and copy headers associated with PDL variables. Headers are hash references used for storing metadata. `hdr` and `fhdr` methods automatically create headers if they don't exist. ```perl $a->sethdr(\%hdr); # Set the header to an existing hash $hdr_ref = $a->gethdr # Get a ref to the header. $hdr2 = $a->hdr_copy; # Copy the header. $a->hdr->{CTYPE1} = "Lon"; # Set a header value (safely) $a->fhdr->{CtYpE2} = "Lat"; # Set FITS keyword (case insensitive) ``` -------------------------------- ### Perl Ternary Operator for Conditional Assignment Source: https://github.com/pdlporters/pdl/wiki/Documentation/PDL-for-IDL-users Illustrates the use of Perl's ternary operator '?:' for concise conditional assignments. The first example calculates arcsine, and the second assigns an axis label based on a variable's header information. ```perl $arcsin = (abs($s) > 1) ? asin(1/$s) : asin($s); $title = (defined $var->hdr->{NAXIS}) ? $var->hdr->{CTYPE1} : '(Arbitrary)'; ``` -------------------------------- ### Initialize PDL Environment and Lvalue Subroutines Source: https://github.com/pdlporters/pdl/wiki/Example/Example-perldlrc This Perl script loads standard PDL modules including graphics, FFT, and disk caching. It also explicitly marks core indexing and slicing functions as lvalues to allow direct assignment to PDL slices. ```perl require('PDL/default.perldlrc'); use PDL::Graphics::PGPLOT; use PDL::Graphics::PGPLOT::Window; use PDL::AutoLoader; use PDL::Image2D; use PDL::FFT; use PDL::DiskCache; eval 'use PDL::IO::Dumper'; sub PDL::diagonal : lvalue; sub PDL::slice(;@): lvalue; sub PDL::dice : lvalue; sub PDL::dice_axis: lvalue; sub PDL::index(;@): lvalue; sub PDL::index2d(;@) : lvalue; sub PDL::mslice : lvalue; $PDL::AutoLoader::Rescan = 1; 1; ``` -------------------------------- ### PDL Input/Output Operations Documentation Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Man pages covering various input and output operations in PDL, including browser, DICOM, raw files, FITS, GD, and more. ```perl perldoc PDL::IO perldoc PDL::IO::Browser perldoc PDL::IO::Dicom perldoc PDL::IO::FastRaw perldoc PDL::IO::FITS perldoc PDL::IO::FlexRaw perldoc PDL::IO::GD perldoc PDL::IO::Misc perldoc PDL::IO::NDF perldoc PDL::IO::Pnm perldoc PDL::IO::Storable ``` -------------------------------- ### Configure SSH for Remote Installation Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-Using-cpanm Configures environment variables for X11 forwarding over SSH to prevent OpenGL errors during installation. ```bash ssh -X user@hostname export LIBGL_ALWAYS_INDIRECT=y ``` -------------------------------- ### Install System Dependencies Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-Using-cpanm Installs necessary system-level libraries and headers required for compiling PDL and its graphics modules on Ubuntu. ```bash sudo apt-get install libxi-dev libxmu-dev freeglut3-dev libgsl0-dev \ libnetpbm10-dev libplplot-dev pgplot5 build-essential gfortran ``` -------------------------------- ### Initialize Particle Simulation Dynamics with PDL Source: https://github.com/pdlporters/pdl/wiki/Example/Animation-with-SDL Sets up the initial state of a particle system using PDL, including random positions and velocities. The compute function updates particle positions based on a constant time step. ```perl #!/usr/bin/perl use warnings; use strict; use PDL; my $d_t = 2**-3; my $side_length = 200; my $numb_of_atoms = 100; my $positions = random(2, $numb_of_atoms) * $side_length; my $velocities = random(2, $numb_of_atoms) * 6; sub compute { $positions += $d_t * $velocities; } ``` -------------------------------- ### Initialize the PDL interactive shell Source: https://github.com/pdlporters/pdl/blob/master/README.md Commands to launch the interactive PDL shell (perldl) either from the source build directory or after a system-wide installation. ```bash # From the root of the PDL source tree perl -Mblib blib/script/perldl # After installation pdl ``` -------------------------------- ### Verify PDL Installation Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-Using-cpanm Runs a Perl script to verify that PDL and its graphics modules (PGPLOT, TriD) are correctly installed and functional. ```perl perl -e ' use PDL; use PDL::Graphics::PGPLOT; use PDL::Graphics::TriD; print qq[success\n]' ``` -------------------------------- ### Install PDL Package on Gentoo Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Gentoo Installs the PDL development packages for Perl on a Gentoo system. This command requires root privileges. ```bash emerge dev-perl/PDL ``` -------------------------------- ### Install PDL Dependencies via cpanm Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Commands to install required Perl modules ExtUtils::F77 and OpenGL using cpanm. ```shell sudo cpanm ExtUtils::F77 sudo cpanm OpenGL ``` -------------------------------- ### PDL Pod and PP Documentation Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-Mac-OS-X Documentation for PDL's POD (Plain Old Documentation) parsing utilities and its PP (Perl-to-C) preprocessor. ```perl perldoc PDL::Pod::Parser perldoc PDL::Pod::Select perldoc PDL::Pod::Usage perldoc PDL::PP perldoc PDL::PP::Dump perldoc PDL::PP::Signature perldoc PDL::pptemplate ``` -------------------------------- ### Install PDL System Dependencies Source: https://github.com/pdlporters/pdl/wiki/Installing/Installing-PDL-on-a-Linux-Debian-based-operating-system-for-power-users Updates the local package index and installs the necessary system-level libraries and compilers for PDL using apt-get. ```bash apt-get update apt-get install pdl pgplot5 libterm-readline-gnu-perl g77 libc6-dev libx11-dev netpbm ```