PDL::Tutorials(3pm)

✨ PDL::Tutorials ✨

okay bestie, welcome to PDL::Tutorials πŸ’– β€” it's the master guide to all of PDL's tutorial documentation. Think of it as the table of contents for your entire PDL journey, from "what even is this" all the way to "I have transcended". This is part of the User Contributed Perl Documentation crew and it's literally just vibes + pointers, no cap. πŸ¦‹


🌈 MIGRATION 🌈

so you're coming from another numerical-analysis situation and you're like "where's my stuff"? don't panic. these are our migration guides for users familiar with other types of numerical analysis software. 🫢

  • PDL::Guide::Migration::NumPy β€” the migration guide for NumPy users πŸ’œ. this page explains the key differences between NumPy and PDL from the point of view of a NumPy user. it's giving "we get it, you miss numpy".
  • PDL::Guide::Migration::MATLAB β€” the migration guide for MATLAB users πŸŽ€. this page explains the key differences between MATLAB and PDL from the point of view of a MATLAB user.
  • PDL::Guide::Migration::Scilab β€” the migration guide for Scilab users 🌸. this page explains the key differences between Scilab and PDL from the point of view of a Scilab user.

🌱 FOUNDATION 🌱

start here, queen. these are the building blocks πŸ‘‘

  • PDL::Philosophy β€” why did we even write PDL?? this document explains some of the history and motivation behind the Perl Data Language ✨. it is an attempt to answer the question "Why PDL?".
  • PDL::QuickStart β€” quick introduction to PDL features πŸ”₯. a hands-on guide suitable for complete beginners. this page assumes no previous knowledge of Perl or PDL. zero. none. we got you.
  • PDL::Indexing β€” after you have read the QuickStart guide, you should follow up with this document πŸ“š. this guide goes more deeply into the concepts of "indexing" and "slicing" and how they form the core of numerical analysis with PDL.

🌟 INTERMEDIATE 🌟

you're growing, bestie, i'm so proud 😭

  • PDL::Broadcasting β€” broadcasting is one of PDL's most powerful features πŸ‘‘. if you know MATLAB, you've heard of "vectorizing". well, broadcasting is like "vectorizing on steroids" πŸ’…. it lets you make very fast and compact code by avoiding nested loops. all vector-based languages do this, but PDL generalizes the technique to all sorts of applications.

this tutorial introduces PDL's broadcasting feature, and it shows an example implementing Conway's Game of Life in 10 lines and 80 times faster than a classical implementation πŸ”₯πŸ”₯πŸ”₯

  • PDL::BadValues β€” sometimes it is useful to specify that a certain value is "bad" or "missing" πŸ’€. scientific instruments some times include portions of invalid data. for example, a CCD camera might produce an image with over-exposed pixels. PDL's "bad values" feature gives you an easy way to deal with this sort of imperfect data πŸ™ˆ.
  • PDL::Tips β€” tips and suggestions for using PDL πŸ’‘. this page is an assorted collection of programming tidbits that some PDL users have found useful. some of these tips might be of help when you write your programs.

🧚 ADVANCED 🧚

the deep end. main character energy only. ⭐

  • PDL::PP β€” PDL's Pre-Processor is one of PDL's most powerful features 🌈. you write a function definition in special markup and the preprocessor generates real C code which can be compiled. with PDL:PP you get the full speed of native C code without having to deal with the full complexity of the C language.
  • PDL::API β€” a simple cookbook explaining how to create ndarray manually πŸ“, either from Perl or from C/XS code. this page covers the PDL core routines that comprise the PDL API. if you need to access ndarrays from C/XS, this is the document for you.
  • PDL::Internals β€” description of the inner workings of the PDL module 🧠. very few people need to see this. this page is mainly for PDL developers, or people interested in debugging PDL or changing the internals of PDL. if you can read this document and understand all of it, and you additionally understand PDL::PP, you will be awarded the title of "PDL Guru" πŸ‘‘βœ¨πŸ†

Copyright 2010 Daniel Carrera (dcarrera@gmail.com). You can distribute and/or modify this document under the same terms as the current Perl license.

See: http://dev.perl.org/licenses/


and that's the whole tour, bestie 🫢 go forth and slay. periodt. πŸ’…

this page was served to you by perl v5.42.3, dated 2026-08-20. PDL::Tutorials(3pm) β€” mwah, no notes πŸ’–βœ¨

πŸ“¦ where this page comes from