Although PHP (and quite out of necessity, I would add ...) is much more “modularized” by (Linux) distros these days, Perl also is divided-up by many distros and sometimes there doesn’t seem to be too much reason to it. Even so-called “core” facilities can be affected. In the Ubuntu distro, for instance, here’s a very small subset of the available (Ubuntu) packages which, in one way or another, deal with Perl and encoding:
libencode-locale-perl - utility to determine the locale encoding
crip - terminal-based ripper/encoder/tagger tool
libbencode-perl - Perl module for BitTorrent serialisation format
libcatmandu-importer-getjson-perl - load JSON-encoded data from a serv
+er using a GET HTTP request
libdbix-class-encodedcolumn-perl - extension to encode column values a
libencode-arabic-perl - perl implementation for Arabic encodings
libencode-detect-perl - Encode::Encoding subclass that detects the enc
+oding of data
libencode-eucjpms-perl - Perl library for Microsoft Compatible Japanes
libencode-hanextra-perl - perl module providing extra sets of Chinese
libencode-imaputf7-perl - modification of UTF-7 encoding for IMAP
libencode-jis2k-perl - perl module providing JIS X 0212 (aka JIS 2000)
libencode-perl - module providing interfaces between Perl's strings an
+d the system
libencode-zapcp1252-perl - zap Windows Western gremlin characters
libgrabcd-readconfig-perl - rip and encode audio CDs - common files
libhtml-html5-entities-perl - module to encode and decode character en
+tities defined in HTML5
libidna-punycode-perl - module to encode Unicode string in Punycode
libimager-qrcode-perl - Generate QR code with Imager using libqrencode
liblatex-encode-perl - Perl module to encode characters for LaTeX form
libmail-verp-perl - Variable Envelope Return Paths (VERP) address enco
libmarc-parser-raw-perl - parser for ISO 2709 encoded MARC records
libmarc-xml-perl - Perl library to access MARC data encoded as XML
libmime-base32-perl - Base32 encoder/decoder
libmime-encwords-perl - Perl interface to deal with RFC 2047 encoded w
libnet-idn-encode-perl - Internationalizing Domain Names in Applicatio
libnumber-recordlocator-perl - Perl module that encodes integers into
+a short "locator string"
libsereal-encoder-perl - fast, compact, powerful binary serialization
libsession-storage-secure-perl - module implementing a secure way to e
+ncode session data
libtex-encode-perl - Perl module to transform UTF-8 strings into TeX
libtext-csv-encoded-perl - encoding-aware comma-separated values manip
liburi-encode-perl - Perl module to encode and decode strings to URIs
So, these are things which affect both Perl and CPAN but do so in ways that neither of them per se entirely knows about. And, different distro packagers, each operating independently, inevitably made different decisions about what to put where. Although they try very hard to correctly handle dependencies, mistakes do get made.
Comment: In some cases, I dealt with this problem by treating it like the “install Perl on a shared-hosting system” use-case, by creating an application-specific CPAN library and installing modules there, pointing each application to its own CPAN repository when it runs, and thereby insulating them (somewhat) from what is installed at the system (Ubuntu-package) level and from other applications which were running on the same environment at the same time. (This was to deal with a particularly-messy mash-up of legacy applications that were being ported to Linux from something else. This slightly-helped the team to deal with each of them one-at-a-time.) In other cases, I simply made good use of the distro-provided facilities that let me extract a package-list from one machine and automatically synchronize it to others.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||