... or how to find X<>-refs in Pod and search them in pager
Problem
Did you ever try to find the documentation of the ".." (flip-flop) operator?
typing perldoc -f .. doesn't help ...
$ perldoc -f ..
No documentation for perl function `..' found
But perldocs have tags like X<..> indicating the right documentation, only the formatters are missing.
Previous discussions
[perldoc] keyword search or
So whats new about pod and X<>-tag? How to check current development?
Approach
Grep core-Pods for X<TAGS>.
Insert marker in front of every hit.
Call pager (here less) with default search pattern to find those markers.
Usage
type pdoc qr to find all references for qr.
Typing n and N will jump from marker to marker.
After quitting a manpage qthe next is built and displayed
Prove of concept
Just a hack ("release often" dogma)
Tested for linux.
file "pdoc"
#!/usr/bin/perl
use strict;
# use Data::Dump;
my $poddir = `perldoc -l perltoc`;
chomp $poddir;
$poddir =~ s/perltoc/*/;
my $pattern = $ARGV[0];
my @pods= grep {! /perltoc/} `grep -l -F 'X<$pattern>' $poddir`;
chomp @pods;
# dd @pods;
for my $infile (@pods) {
open my $in, "<", $infile;
my $outfile = "/tmp/". (split "/",$infile)[-1];
open my $out,">", $outfile;
local $/="\n\n";
my $marker =
">>> X<$pattern> <<<"; #"MARK";
while (my $para = <$in>){
print $out "\nC<<<< $marker >>>>\n\n"
if $para =~ /X<\Q$pattern\E>/;
print $out $para;
}
close $out;
my $ret = `pod2man $outfile |nroff -man > /tmp/tmp.man`;
print system("less -p \"$marker\" /tmp/tmp.man")
}