PDQ in Perl 5

212,935pages on
this wiki
Add New Page
Add New Page Discuss this page0

Back to Pdq

Software Distribution

This page was last updated on Apr 9, 2006

Release Information

This page concerns the Perl 5 latest release of PDQ which also accompanies the book: [1] PPDQ-small.jpg

Once you have downloaded the PDQ distribution (instructions below), you will find the Perl PDQ models located in the ../examples/sv_2004/pdq_models/ directory, together with a detailed synopsis of how to use the Perl version of PDQ can be found in Chapter 6 of the above book.

Power of Perl

I just did it again! I needed to extract some performance data from a file and feed it into a PDQ model. It took me 2 minutes to write the Perl codeand apply it successfully. I couldn't even write the C-code in 2 minutes, let alone compile it, debug it and apply it successfully. This is the point that John Ousterhout (father of Tcl) tries to make. Much of what he has to say also applies to computer performance modeling. I say more about this in the Preface of my Performance with Perl::PDQ book.

Some more reasons to consider using Perl PDQ (rather than the C version) are:

  • The Perl interpreter is ubiquitous, being available by default on most UNIX and Linux systems.
  • Perl syntax is very similar to C syntax.
  • Perl comes with an integrated debugger.
  • You no longer need to explicitly compile and link each PDQ model.
  • Since the historical roots of Perl run deep in text processing, it is eminently suited to extracting (the `e' in Perl) data out of files e.g., performance data that may already be residing in log files or other databases. Such data can be extracted, filtered and used to parameterize PDQ models, all within the same Perl code.

The conversion of the C source to Perl was performed entirely by Peter Harding using the SWIG facility.

In the future, we hope to incorporate some of your own Perl PDQ models on this page. See the section below on sending Feedback if you have a submission.

Getting Started

Follow the download instructions for the PDQ tarball. Once installed, the following directories should have been created:

[/d/pdq]% ls -l
total 144
drwxr-xr-x  3 neil neil  4096 Oct 28 00:13 chap2/
drwxr-xr-x  3 neil neil  4096 Oct 28 00:13 chap3/
drwxr-xr-x  3 neil neil  4096 Oct 28 00:13 chap6/
drwxr-xr-x  3 neil neil  4096 Oct 28 00:13 chap7/
drwxr-xr-x  3 neil neil  4096 Oct 28 00:14 chap8/
drwxr-xr-x  3 neil neil  4096 Oct 28 00:14 chap9/
-rw-r--r--  1 neil neil 18050 Nov 19 19:34 COPYRIGHT
drwxr-xr-x  2 neil neil  4096 Nov 17  2003 CVS/
drwxr-xr-x  4 neil neil  4096 Nov 19 19:34 examples/
-rwxr-xr-x  1 neil neil   301 Nov 19 19:34 Getversion*
drwxr-xr-x  3 neil neil  4096 Nov 19 19:34 lib/
-rwxr-xr-x  1 neil neil   679 Nov 19 19:34 Makeall*
-rw-r--r--  1 neil neil   887 Nov 19 19:34 Makefile
drwxr-xr-x  4 neil neil  4096 Nov 19 19:34 perl5/
-rw-r--r--  1 neil neil 49224 Oct 28 00:01 pypdq.tar.gz
drwxr-xr-x  9 neil neil  4096 Nov 19 19:34 python/
-rw-r--r--  1 neil neil  5805 Nov 19 19:34 README
-rw-r--r--  1 neil neil  2130 Sep 26  2002

Note the presence of the perl5 directory.

In addition, the all the Perl-PDQ codes are now under the examples directory:

[/d/pdq/examples]% ls -l
total 12
-rw-r--r--  1 neil neil  841 Nov 19 19:34 Makefile
drwxr-xr-x  8 neil neil 4096 Nov 19 19:34 ppa_1998/
drwxr-xr-x  4 neil neil 4096 Nov 19 19:34 sv_2004/

All the models discussed in the new book (see above) are in contained the ../examples/sv_2004/pdq_models directory, while those for the previous book The Practical Performance Analyst can be found in the ../examples/ppa_1998/ directory.

If you run into problems, installing or using Perl-PDQ, please fill out this form selecting the "Question about the PDQ analyzer" header in the service menu. We will try to address your issue as quickly as possible.

User Guide

An instruction manual for building Perl-PDQ models appears as a chapter in the new book but you may download a preview copy now.


New versions of Perl-PDQ are released periodically. Please fill out this form if you would like to notified by email when the release occurs. We are also interested to hear from you if you have Perl code or ideas to contribute to future releases.

Also on Fandom

Random wikia