Read Perl's Release History with perlhist
You will use the installed perlhist(1) manual to answer practical history questions: when a Perl release appeared, who was maintaining it, how the release series changed, and what the recorded patch sizes mean. Nothing in this guide changes files or system configuration. Allow about ten minutes for a first pass, or a couple of minutes when you already know the release you are looking for.
The route
Jump straight to the step you need, or tick off Done means at the end.
1. Confirm the document and Perl version
perlhist is a reference document, not an executable that performs an operation. The normal entry point is the manual-page viewer. On the machine used for this guide, the installed page identifies itself as Perl v5.38.2, and the page file comes from the perl-doc package. Versions of the document can differ, so use the page installed on the host when you need an exact local record.
$ command -v man
/usr/bin/man
$ perl --version | sed -n '1,4p'
This is perl 5, version 38, subversion 2 (v5.38.2) built for ...
$ dpkg-query -W -f='${Package} ${Version}\n' perl-doc
perl-doc 5.38.2-3ubuntu1
The build suffix and package revision are distribution-specific. The useful checkpoint is that Perl and its documentation are present, and that the Perl version agrees with the version you intend to discuss.
2. Open perlhist without changing anything
Read the page in the terminal. The -P cat option asks this installation of man to send plain formatted text to standard output, which is useful for searching or saving a temporary review. It does not alter the installed manual.
$ man -P cat perlhist | less
In a graphical terminal, omit the pipe and let man choose its pager. If the page is missing, the likely cause is that the documentation package is not installed or the manual path is not in the current MANPATH. Confirm the lookup before reaching for elevated privileges:
$ man -w perlhist
/usr/share/man/man1/perlhist.1.gz
Checkpoint: the page should begin with the name, description, introduction, the named maintainers, and the release records. If man -w prints nothing, stop here. Do not create a replacement page in /usr/share/man just to make the example work.
3. Find a release in the records
Use the pager's search function for a release such as 5.38.0. The records table has columns for the pumpkin holder, release, date and notes. It is a historical table, and the document says it is not comprehensive, so absence from a short table is not proof that a version never existed.
$ man -P cat perlhist | grep -A4 -B3 '5\.38\.0'
The exact amount of surrounding text is a display choice, not a property of perlhist. For an interactive read, open the page and type /5.38.0, then press n to move to the next match. A release can appear in more than one table, so check the nearby heading before interpreting the match.
The installed page records Perl 5.38.0 in the release-size data as well as in the main history. That does not mean the tables are live metadata for the Perl installed on your machine. They describe source-release history, while your runtime version comes from the local perl --version command.
4. Read the pumpkin terminology correctly
The page calls the person responsible for carrying Perl's development forward the holder of the patch pumpkin, or informally the pumpking or pumpkineer. The term is a historical project metaphor, not a command, lock file, permission or process that you need to locate on the system.
That distinction prevents a common distraction: searching the filesystem for a 'pumpkin' will not identify a maintainer or tell you which Perl binary is active. Use the names in the document for historical attribution, and use command -v perl plus perl --version for the local installation.
$ command -v perl
/usr/bin/perl
$ perl -e 'print "$^V\n"'
v5.38.2
5. Interpret selected release sizes
The SELECTED RELEASE SIZES section reports counts for selected source-tree areas. A line such as Porting 1640 80 is a pair of measurements for that release in the page's table, not a command to run and not a count of files installed by your package manager. Read the column headings above the table before comparing values.
These figures are historical snapshots. They are useful for seeing how the source distribution grew, but they are not a reliable way to estimate disk space for a modern binary package. Package contents, compression, architecture and distribution patches are separate concerns.
6. Interpret the patch-size table
The SELECTED PATCH SIZES section uses three columns labelled +, - and !. In the document's explanation, these are kilobytes of added, removed and changed lines for a patch, counting the lines themselves rather than their context. The changed-line figure is not a byte-for-byte download size.
Release + - !
5.003_08 110 19 424
For that example, read the figures as 110 kB of added lines, 19 kB of removed lines and 424 kB of changed lines, in the historical table's measurement. Do not add them and call the result an archive size. The document also explains that modern named releases no longer provide patches in the same way, so later figures may be calculated comparisons rather than shipped patch files.
7. Search safely or save a temporary copy
When you need several searches, format the page once into a temporary file. This keeps the installed compressed manual untouched. The command below writes only under /tmp; change the temporary filename if another process may be using it.
$ man -P cat perlhist > /tmp/perlhist-local.txt
$ rg -n '5\.38\.0|SELECTED PATCH SIZES|THE KEEPERS OF THE RECORDS' /tmp/perlhist-local.txt
Remove the temporary copy when you have finished if it contains no work you need to keep:
$ rm -- /tmp/perlhist-local.txt
This deletion is irreversible, although it affects only the temporary rendered copy. Do not substitute a path under /usr/share/man, a project checkout, or a directory containing your own notes. If you need a durable citation, record the page version and package version instead of overwriting the system manual.
Done means
- You confirmed that
perlhist(1)is installed and identified its Perl documentation version. - You can locate a release in the records and check which table contains the match.
- You understand that the pumpkin language describes project maintainers, not local system state.
- You can distinguish source-tree size figures from package size and disk usage.
- You read the patch table's
+,-and!columns as historical line measurements. - You used only read-only commands, with any rendered copy confined to
/tmp.