Created
June 28, 2018 12:12
-
-
Save tobyink/2c41aa3a8b9b943996f80c58a2ffce06 to your computer and use it in GitHub Desktop.
Better sorting for perl docs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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