Stupid perldoc-search trick
Perl's copious documentation is one of the things that keeps me using it. But this is not an unalloyed benefit; actually finding something, unless you have a pretty good idea where to start looking, can be like finding the proverbial needle in a haystack.
Fortunately, we have Joshua ben Jore's perldoc-search, which will find anything you can specify as a regular expression, and that Perl itself can find.
Unfortunately, this can sometimes be a bit too much. I generally have several Perl
kits unpacked in my home directory (well, subdirectories of it). Since by
file-find does a
@INC, and since by default
@INC contains my current
directory, then if I issue a
file-find in my home directory, the
entire tree gets searched, and every unpacked kit can produce a hit.
It turns out there is a surely-unsupported but nonintrusive way to exclude
the current directory from the search. Instead of running
perldoc-search directly, run it as
perl -T -S perldoc-search
One of the things taint mode does is to exclude the current directory from
@INC. Of course, taint mode does a lot more than that, all aimed
at trying to ensure presumed-untrusted input can not modify output. So basically
this trick only works because (as perlsec says) arguments to
no lib '.';, and wonder
whether that is portable. Until then, my
.bashrc will contain a
shell function that executes the above command with arguments
This trick was inspired by a Google search that turned up the article Current directory in @INC potentially harmful by Ansgar Burchardt.
PS - The
no lib '.'; trick can also be done from the command line, using
perl -M-lib=. -S perldoc-search
Leave a comment