Skip to content

Instantly share code, notes, and snippets.

@tobyink
Created June 28, 2018 12:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tobyink/2c41aa3a8b9b943996f80c58a2ffce06 to your computer and use it in GitHub Desktop.
Save tobyink/2c41aa3a8b9b943996f80c58a2ffce06 to your computer and use it in GitHub Desktop.
Better sorting for perl docs
use v5.14;
use strict;
use warnings;
use version;
use List::MoreUtils qw(part);
my @packages = map [split / - /], map { chomp; $_ } <DATA>;
my ($perl, $delta, $other) = part {
$_->[0] =~ /^perl.*delta$/ ? 1 :
$_->[0] =~ /^perl/ ? 0 : 2
} @packages;
for (@$delta) {
$_->[2] = 99999;
$_->[1] =~ /perl\s?(v?5.+)$/ and $_->[2] = version->parse($1);
}
say "$_->[0] - $_->[1]" for
(sort { $a->[0] cmp $a->[0] } @$perl),
(sort { $b->[2] <=> $a->[2] } @$delta),
(sort { $a->[0] cmp $a->[0] } @$other);
__END__
INSTALL
PACKAGING - notes and best practice for packaging perl 5
README.pod - README for the Porting/ directory in the Perl 5 core distribution.
bench.pl - Compare the performance of perl code snippets across multiple perls.
bisect.pl - use git bisect to pinpoint changes
checkURL.pl - Check that all the URLs in the Perl source are valid
checkansi.pl - Check source code for ANSI-C violations
perlepigraphs - list of Perl release epigraphs
expand-macro.pl - expand C macros using the C preprocessor
git-deltatool - Annotate commits for perldelta
how_to_write_a_perldelta - How to write a perldelta
Release
Pumpkin - Notes on handling the Perl Patch Pumpkin And Porting Perl
release_managers_guide - Releasing a new version of perl 5.x
release_schedule - Perl 5 release schedule
sort_perldiag.pl - Sort warning and error messages in perldiag.pod
todo - Perl TO-DO list
valgrindpp.pl - A post processor for make test.valgrind
perlapi - autogenerated documentation for the perl public API
Config - access Perl configuration information
Locale::Codes::Changes
lib - manipulate @INC at compile time
DynaLoader - Dynamically load C libraries into Perl code
Errno - System errno constants
Pod::Functions - Group Perl's functions a la perlfunc.pod
Functions.t - Test Pod::Functions
pod2html - convert .pod files to .html files
anchorify - Test Pod::Html::anchorify()
the
htmlcrossref - Test HTML cross reference links
crlf
ext::Pod-Html::t::feature
ext::Pod-Html::t::feature2
htmldir - Test --htmldir feature
htmldir - Test --htmldir feature
htmldir - Test --htmldir feature
htmldir - Test --htmldir feature
htmldir - Test --htmldir feature
Escape
htmllink - Test HTML links
Test
Test
Test
perlpodspeccopy - Plain Old Documentation: format specification and notes
perlvarcopy - Perl predefined variables
installhtml - converts a collection of POD pages to HTML format.
CORE - Namespace for Perl's core routines
Internals - Reserved special namespace for internals related functions
InputObjects.t - The tests for Pod::InputObjects
Select.t - Tests for Pod::Select.
Usage.t - Tests for Pod::Usage
perl5db.pl - the perl debugger
make_patchnum.pl - make patchnum
mkppport - distribute ppport.h among extensions
perl - The Perl 5 language interpreter
perl5004delta - what's new for perl5.004
perl5005delta - what's new for perl5.005
perl5100delta - what is new for perl 5.10.0
perl5101delta - what is new for perl v5.10.1
perl5120delta - what is new for perl v5.12.0
perl5121delta - what is new for perl v5.12.1
perl5122delta - what is new for perl v5.12.2
perl5123delta - what is new for perl v5.12.3
perl5124delta - what is new for perl v5.12.4
perl5125delta - what is new for perl v5.12.5
perl5140delta - what is new for perl v5.14.0
perl5141delta - what is new for perl v5.14.1
perl5142delta - what is new for perl v5.14.2
perl5143delta - what is new for perl v5.14.3
perl5144delta - what is new for perl v5.14.4
perl5160delta - what is new for perl v5.16.0
perl5161delta - what is new for perl v5.16.1
perl5162delta - what is new for perl v5.16.2
perl5163delta - what is new for perl v5.16.3
perl5180delta - what is new for perl v5.18.0
perl5181delta - what is new for perl v5.18.1
perl5182delta - what is new for perl v5.18.2
perl5184delta - what is new for perl v5.18.4
perl5200delta - what is new for perl v5.20.0
perl5201delta - what is new for perl v5.20.1
perl5202delta - what is new for perl v5.20.2
perl5203delta - what is new for perl v5.20.3
perl5220delta - what is new for perl v5.22.0
perl5221delta - what is new for perl v5.22.1
perl5222delta - what is new for perl v5.22.2
perl5223delta - what is new for perl v5.22.3
perl5224delta - what is new for perl v5.22.4
perl5240delta - what is new for perl v5.24.0
perl5241delta - what is new for perl v5.24.1
perl5242delta - what is new for perl v5.24.2
perl5243delta - what is new for perl v5.24.3
perl5244delta - what is new for perl v5.24.4
perl5260delta - what is new for perl v5.26.0
perl5261delta - what is new for perl v5.26.1
perl5262delta - what is new for perl v5.26.2
perl561delta - what's new for perl v5.6.1
perl56delta - what's new for perl v5.6.0
perl581delta - what is new for perl v5.8.1
perl582delta - what is new for perl v5.8.2
perl583delta - what is new for perl v5.8.3
perl584delta - what is new for perl v5.8.4
perl585delta - what is new for perl v5.8.5
perl586delta - what is new for perl v5.8.6
perl587delta - what is new for perl v5.8.7
perl588delta - what is new for perl v5.8.8
perl589delta - what is new for perl v5.8.9
perl58delta - what is new for perl v5.8.0
perlapio - perl's IO abstraction interface.
perlartistic - the Perl Artistic License
perlbook - Books about and related to Perl
perlboot - Links to information on object-oriented programming in Perl
perlbot - Links to information on object-oriented programming in Perl
perlcall - Perl calling conventions from C
perlcheat - Perl 5 Cheat Sheet
perlclib - Internal replacements for standard C library functions
perlcommunity - a brief overview of the Perl community
perldata - Perl data types
perldbmfilter - Perl DBM Filters
perldebguts - Guts of Perl debugging
perldebtut - Perl debugging tutorial
perldebug - Perl debugging
perldelta - what is new for perl v5.28.0
perldeprecation - list Perl deprecations
perldiag - various Perl diagnostics
perldsc - Perl Data Structures Cookbook
perldtrace - Perl's support for DTrace
perlebcdic - Considerations for running Perl on EBCDIC platforms
perlembed - how to embed perl in your C program
perlexperiment - A listing of experimental features in Perl
perlfilter - Source Filters
perlfork - Perl's fork() emulation
perlform - Perl formats
perlfunc - Perl builtin functions
perlgit - Detailed information about git and the Perl repository
perlgpl - the GNU General Public License, version 1
perlguts - Introduction to the Perl API
perlhack - How to hack on Perl
perlhacktips - Tips for Perl core C code hacking
perlhacktut - Walk through the creation of a simple C code patch
perlhist - the Perl history records
perlinterp - An overview of the Perl interpreter
perlintro - a brief introduction and overview of Perl
perliol - C API for Perl's implementation of IO in Layers.
perlipc - Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores)
perllexwarn - Perl Lexical Warnings
perllocale - Perl locale handling (internationalization and localization)
perllol - Manipulating Arrays of Arrays in Perl
perlmod - Perl modules (packages and symbol tables)
perlmodinstall - Installing CPAN Modules
perlmodlib - constructing new Perl modules and finding existing ones
perlmodstyle - Perl module style guide
perlmroapi - Perl method resolution plugin interface
perlnewmod - preparing a new module for distribution
perlnumber - semantics of numbers and numeric operations in Perl
perlobj - Perl object reference
perlootut - Object-Oriented Programming in Perl Tutorial
perlop - Perl operators and precedence
perlopentut - simple recipes for opening files and pipes in Perl
perlpacktut - tutorial on pack and unpack
perlperf - Perl Performance and Optimization Techniques
perlpod - the Plain Old Documentation format
perlpodspec - Plain Old Documentation: format specification and notes
perlpodstyle - Perl POD style guide
perlpolicy - Various and sundry policies and commitments related to the Perl core
perlport - Writing portable Perl
perlpragma - how to write a user pragma
perlre - Perl regular expressions
perlreapi - Perl regular expression plugin interface
perlrebackslash - Perl Regular Expression Backslash Sequences and Escapes
perlrecharclass - Perl Regular Expression Character Classes
perlref - Perl references and nested data structures
perlreftut - Mark's very short tutorial about references
perlreguts - Description of the Perl regular expression engine.
perlrepository - Links to current information on the Perl source repository
perlrequick - Perl regular expressions quick start
perlreref - Perl Regular Expressions Reference
perlretut - Perl regular expressions tutorial
perlrun - how to execute the Perl interpreter
perlsec - Perl security
perlsource - A guide to the Perl source tree
perlstyle - Perl style guide
perlsub - Perl subroutines
perlsyn - Perl syntax
perlthrtut - Tutorial on threads in Perl
perltie - how to hide an object class in a simple variable
perltodo - Link to the Perl to-do list
perltooc - Links to information on object-oriented programming in Perl
perltoot - Links to information on object-oriented programming in Perl
perltrap - Perl traps for the unwary
perlunicode - Unicode support in Perl
perlunicook - cookbookish examples of handling Unicode in Perl
perlunifaq - Perl Unicode FAQ
perluniintro - Perl Unicode introduction
perlunitut - Perl Unicode Tutorial
perlutil - utilities packaged with the Perl distribution
perlvar - Perl predefined variables
perlvms - VMS-specific documentation for Perl
feature - Perl pragma to enable new features
CharClass::Matcher - Generate C macros that match character classes efficiently
warnings - Perl pragma to control optional warnings
CPerlBase - a C++ base class encapsulating a Perl interpreter in Symbian
PerlUtil - a C++ utility class for Perl/Symbian
h2ph - convert .h C header files to .ph Perl header files
h2xs - convert .h C header files to Perl extensions
libnetcfg - configure libnet
perlbug - how to submit bug reports on Perl
perlivp - Perl Installation Verification Procedure
pl2pm - Rough tool to translate Perl4 .pl files to Perl5 .pm modules.
exetype
Modules
experimental
I18N::LangTags - functions for dealing with RFC3066-style language tags
I18N::LangTags::Detect - detect the user's language preferences
I18N::LangTags::List - tags and names for human languages
IO - load various IO modules
IO::Dir - supply object methods for directory handles
IO::File - supply object methods for filehandles
IO::Handle - supply object methods for I/O handles
IO::Pipe - supply object methods for pipes
IO::Poll - Object interface to system poll call
IO::Seekable - supply seek based methods for I/O objects
IO::Select - OO interface to the select system call
IO::Socket - Object interface to socket communications
IO::Socket::INET - Object interface for AF_INET domain sockets
IO::Socket::UNIX - Object interface for AF_UNIX domain sockets
Amiga::ARexx - Perl extension for ARexx support
Amiga::Exec - Perl extension for low level amiga support
B - The Perl Compiler Backend
B::Concise - Walk Perl syntax tree, printing concise info about ops
B::Showlex - Show lexical variables used in functions or files
B::Terse - Walk Perl syntax tree, printing terse info about ops
B::Xref - Generates cross reference reports for Perl programs
O - Generic interface to Perl Compiler backends
OptreeCheck - check optrees as rendered by B::Concise
Devel::Peek - A data debugging tool for the XS programmer
ExtUtils::Miniperl - write the C code for miniperlmain.c and perlmain.c
Fcntl - load the C Fcntl.h defines
File::DosGlob - DOS like globbing and then some
File::Find - Traverse a directory tree.
File::Glob - Perl extension for BSD glob routine
FileCache - keep more files open than the system permits
GDBM_File - Perl5 access to the gdbm library.
Hash::Util::FieldHash - Support for Inside-Out Classes
Hash::Util - A selection of general-utility hash subroutines
I18N::Langinfo - query locale information
IPC::Open2 - open a process for both reading and writing using open2()
IPC::Open3 - open a process for reading, writing, and error handling using open3()
NDBM_File - Tied access to ndbm files
ODBM_File - Tied access to odbm files
Opcode - Disable named opcodes when compiling perl code
ops - Perl pragma to restrict unsafe operations when compiling
POSIX - Perl interface to IEEE Std 1003.1
PerlIO::encoding - encoding layer
PerlIO::mmap - Memory mapped IO
PerlIO::scalar - in-memory IO, scalar IO
PerlIO::via - Helper class for PerlIO layers implemented in perl
Pod::Html - module to convert pod files to HTML
SDBM_File - Tied access to sdbm files
Sys::Hostname - Try every conceivable way to get hostname
Tie::Hash::NamedCapture - Named regexp capture buffers
Tie::Memoize - add data to hash when needed
VMS::DCLsym - Perl extension to manipulate DCL symbols
VMS::Filespec - convert between VMS and Unix file specification syntax
VMS::Stdio - standard I/O functions via VMS extensions
Win32CORE - Win32 CORE function stubs
XS::APItest - Test the perl C API
XS::Typemap - module to test the XS typemaps distributed with perl
arybase - Set indexing base via $[
attributes - get/set subroutine or variable attributes
mro - Method Resolution Order
re - Perl pragma to alter regular expression behaviour
Haiku - Interfaces to some Haiku API Functions
AnyDBM_File - provide framework for multiple DBMs
B::Deparse - Perl compiler backend to produce perl code
B::Op_private - OP op_private flag definitions
Benchmark - benchmark running times of Perl code
Class::Struct - declare struct-like datatypes as Perl classes
Config::Extensions - hash lookup of which core extensions were built.
DB - programmatic interface to the Perl debugging API
DBM_Filter - Filter DBM keys/values
DBM_Filter::compress - filter for DBM_Filter
DBM_Filter::encode - filter for DBM_Filter
DBM_Filter::int32 - filter for DBM_Filter
DBM_Filter::null - filter for DBM_Filter
DBM_Filter::utf8 - filter for DBM_Filter
DirHandle - (obsolete) supply object methods for directory handles
English - use nice English (or awk) names for ugly punctuation variables
ExtUtils::Embed - Utilities for embedding Perl in C/C++ applications
ExtUtils::XSSymSet - keep sets of symbol names palatable to the VMS linker
File::Basename - Parse file paths into directory, filename and suffix.
File::Compare - Compare files or filehandles
File::Copy - Copy files or filehandles
File::stat - by-name interface to Perl's built-in stat() functions
FileHandle - supply object methods for filehandles
FindBin - Locate directory of original perl script
Getopt::Std - Process single-character switches with switch clustering
Net::hostent - by-name interface to Perl's built-in gethost*() functions
Net::netent - by-name interface to Perl's built-in getnet*() functions
Net::protoent - by-name interface to Perl's built-in getproto*() functions
Net::servent - by-name interface to Perl's built-in getserv*() functions
PerlIO - On demand loader for PerlIO layers and root of PerlIO::* name space
SelectSaver - save and restore selected file handle
Symbol - manipulate Perl symbols and their names
Thread - Manipulate threads in Perl (for old code only)
Tie::Array - base class for tied arrays
Tie::Handle - base class definitions for tied handles
Tie::StdHandle - base class definitions for tied handles
Tie::SubstrHash - Fixed-table-size, fixed-key-length hashing
Time::gmtime - by-name interface to Perl's built-in gmtime() function
Time::localtime - by-name interface to Perl's built-in localtime() function
Time::tm - internal object used by Time::gmtime and Time::localtime
UNIVERSAL - base class for ALL classes (blessed references)
Unicode::UCD - Unicode character database
User::grent - by-name interface to Perl's built-in getgr*() functions
User::pwent - by-name interface to Perl's built-in getpw*() functions
blib - Use MakeMaker's uninstalled version of a package
bytes - Perl pragma to expose the individual bytes of characters
charnames - access to Unicode character names and named character sequences; also define character names
deprecate - Perl pragma for deprecating the core version of a module
feature - Perl pragma to enable new features
filetest - Perl pragma to control the filetest permission operators
integer - Perl pragma to use integer arithmetic instead of floating point
less - perl pragma to request less of something
locale - Perl pragma to use or avoid POSIX locales for built-in operations
open - perl pragma to set default PerlIO layers for input and output
overload - Package for overloading Perl operations
overloading - perl pragma to lexically control overloading
sigtrap - Perl pragma to enable simple signal handling
sort - perl pragma to control sort() behaviour
strict - Perl pragma to restrict unsafe constructs
subs - Perl pragma to predeclare subroutine names
utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code
vars - Perl pragma to predeclare global variable names
vmsish - Perl pragma to control VMS-specific language features
warnings - Perl pragma to control optional warnings
warnings::register - warnings import function
OS2::ExtAttr - Perl access to extended attributes.
OS2::PrfDB - Perl extension for access to OS/2 setting database.
OS2::Process - exports constants for system() call, and process control on OS2.
OS2::DLL - access to DLLs with REXX calling convention.
OS2::REXX - access to DLLs with REXX calling convention and REXX runtime.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment