This is a Perl script that extracts URLs from correctly-encoded MIME
email messages or plain text. This can be used either as a
pre-parser for urlview, or to replace urlview entirely.
This is designed primarily for use with the mutt emailer. The idea
is that if you want to access a URL in an email, you pipe the email
to a URL extractor (like this one) which then lets you select a URL
to view in some third program (such as Firefox). An alternative
design is to access URLs from within mutt's pager by defining macros
and tagging the URLs in the display to indicate which macro to use.
A script you can use to do that is tagurl.pl.
Main features:
- Configurable
- Handles URLs that have been broken over several lines in
format=flowed delsp=yes email messages
- Handles quoted-printable email messages
- Sanitizes URLs so that they can't break out of the command shell
This module is for generating documents in Rich Text Format.
This module is a class; an object belonging to this class
acts like an output filehandle, and calling methods on it
causes RTF text to be written.
Incidentally, this module also exports a few useful functions,
upon request.
The following documentation assumes some familiarity with
the RTF Specification. Users not already intimately
familiar with RTF should look at RTF::Cookbook.
Regexp::Common::Email::Address provides a regex to match email addresses
as defined by RFC 2822.
Patterns for CIDR blocks.
Set of modules:
* Pod::Parser - base class for creating POD filters and translators
* Pod::Select - extract selected sections of POD from input
* Pod::Usage - print a usage message from embedded pod documentation
* Pod::PlainText - convert POD data to formatted ASCII text
* Pod::InputObjects - objects representing POD input paragraphs, commands, etc.
* Pod::Checker - check pod documents for syntax errors
* Pod::ParseUtils - helpers for POD parsing and conversion
* Pod::Find - find POD documents in directory trees
Look up Perl documentation in Pod format.
Instead of a dry technical overview, I am going to explain the structure of this
module based on its history. I consult at a company that generates customer
leads primarily by having websites that attract people (e.g. lowering loan
values, selling cars, buying real estate, etc.). For some reason we get more
than our fair share of profane leads. For this reason I was told to write a
profanity checker.
For the data that I was dealing with, the profanity was most often in the email
address or in the first or last name, so I naively started filtering profanity
with a set of regexps for that sort of data. Note that both names and email
addresses are unlike what you are reading now: they are not whitespace-separated
text, but are instead labels.
Therefore full support for profanity checking should work in 2 entirely
different contexts: labels (email, names) and text (what you are reading).
Because open-source is driven by demand and I have no need for detecting
profanity in text, only label is implemented at the moment. And you know the
next sentence: "patches welcome" :)
Regexp::Copy allows you to copy the contents of one Regexp object to another.
A problem that I have found with the qr// operator is that the Regexp objects
that it creates are is impossible to dereference.
This causes problems if you want to change the data in the regexp without
losing the reference to it. Its impossible.
Regexp::Copy allows you to change the Regexp by copying one object created
through qr// to another.
When you load this module, any regex in the same lexical scope will be visually
(and interactively) debugged as it matches.
Pod::Strip, a subclass of Pod::Simple. It parses perl files,
strips all POD from Perl Code.