NAME
CPAN::LinksToDocs - get links to http://search.cpan.org documentation by giving short "tags"
SYNOPSIS
use strict;
use warnings;
use CPAN::LinksToDocs;
my $linker = CPAN::LinksToDocs->new;
for ( @{ $linker->link_for('map,grep,RE,OOP') } ) {
print "$_\n";
}
DESCRIPTION
The module provides means to get links to documentation on http://search.cpan.org by giving it "tags". There are a few tags which group several links together (e.g. RE
, REF
or OOP
tags). The base code of this module is what is used under the hood of http://tnx.nl/404 website. Thanks to Juerd Waalboer you can now use it too :)
CONSTRUCTOR
new
my $linker = CPAN::LinksToDocs->new;
my $linker2 = CPAN::LinksToDocs->new(
tags => {
some => 'http://there.somewhere',
map => 'http://some_custom.link.to.map.function',
BOTH => 'some,map', # will return 'some' and 'map' together
},
);
Returns a freshly baked CPAN::LinksToDocs
object. Takes one optional argument tags
which takes a hashref as a value. The keys of this hashref will be "tags" which you can use in the link_for
method. The values is what you'll get in return arrayref. Note: if the value contains a comma it will be split on and the elements of that split will be considered as tags, thus you can use predefined tags to group several links together.
METHODS
link_for
my $links_ref = $linker->link_for('map,grep,some,BOTH');
Returns a (possibly empty) arrayref of links to documentation. Takes one mandatory scalar argument which is one or more "tags" separated by commas. See TAGS section below for possible tags. If the tag was not found in predefined tags the returning link will be http://search.cpan.org/perldoc?TAG_YOU_GAVE_THAT_WAS_NOT_FOUND
this way you can link to custom made modules available on CPAN. Note: the module will NOT check if there is any docs actually available in this case (the non-matched tag case). If you want that functionality, consider using CPAN::LinksToDocs::No404s instead.
tags
my $tags_ref = $linker->tags;
$tags_ref->{foos} = 'http://bars/';
$linker->tags( $tags_ref );
Returns a hashref of currently set tags. Takes one optional argument which must be a hashref of tags. The format is the same as the tags
argument to the constructor.
TAGS
The module has a LOT of predefined tags... and I am shamelessly going to semi-quote Juerd's site:
You can leave out the redundant perl
part. Except for perltie
, because tie
is also a function.
The following groups and special "tags" are known:
FAQ
, MOD
, OO
, OOP
, RE
, REF
, UNI
, bp
, cws
, include
, kp
, perlpodtut
, perltut
, podtut
, sfb
, tut
, tutorial
.
S\d\d
, A\d\d
and E\d\d
for Perl 6 language design documents.
Below are the known tags for CPAN::LinksToDocs module:
my @perldoc = qw(
perl perl5004delta perl5005delta perl5100delta perl561delta perl56delta
perl570delta perl571delta perl572delta perl573delta perl581delta
perl582delta perl583delta perl584delta perl585delta perl586delta
perl587delta perl588delta perl58delta perl590delta perl591delta
perl592delta perl593delta perl594delta perl595delta perl5db.pl perlXStut
perlamiga perlapi perlapio perlartistic perlbook perlboot perlbot perlbug
perlcall perlce perlcheat perlclib perlcn perlcommunity perlcompile
perldata perldbmfilter perldebguts perldebtut perldebug perldelta perldgux
perldiag perldoc perldos perldsc perlebcdic perlembed perlfaq perlfaq1
perlfaq2 perlfaq3 perlfaq4 perlfaq5 perlfaq6 perlfaq7 perlfaq8 perlfaq9
perlfilter perlfork perlform perlfunc perlglob.bat perlglossary perlgpl
perlguts perlhack perlhist perlintern perlintro perliol perlipc perlivp
perljp perlko perllexwarn perllocale perllol perlmod perlmodinstall
perlmodlib perlmodstyle perlnetware perlnewmod perlnumber perlobj perlop
perlopentut perlos2 perlothrtut perlpacktut perlplan9 perlpod perlpodspec
perlport perlpragma perlre perlreapi perlrebackslash perlrecharclass
perlref perlreftut perlreguts perlrequick perlreref perlretut perlrun
perlsec perlstyle perlsub perlsyn perlthrtut perltie perltoc perltodo
perltooc perltoot perltrap perltw perlunicode perlunifaq perluniintro
perlunitut perlutil perluts perlvar perlvms perlwin32 perlxs
);
my @perlfunc = qw(
abs accept alarm atan2 bind binmode bless break caller chdir chmod chomp
chop chown chr chroot close closedir connect continue cos crypt dbmclose
dbmopen defined delete die do dump each endgrent endhostent endnetent
endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno
flags flock fork format formline getc getgrent getgrgid getgrnam
gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname
getnetent getpeername getpgrp getppid getpriority getprotobyname
getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname
getservbyport getservent getsockname getsockopt glob gmtime goto grep hex
import index int ioctl join keys kill last lc lcfirst length link listen
local localtime lock log lstat m map mkdir msgctl msgget msgrcv msgsnd my
next no oct open opendir ord order our pack package pipe pop pos precision
print printf prototype push qq qr q qw qx quotemeta rand read readdir
readline readlink readpipe recv redo ref rename require reset return
reverse rewinddir rindex rmdir s say scalar seek seekdir select semctl
semget semop send setgrent sethostent setnetent setpgrp setpriority
setprotoent setpwent setservent setsockopt shift shmctl shmget shmread
shmwrite shutdown sin size sleep socket socketpair sort splice split
sprintf sqrt srand stat state study sub substr symlink syscall sysopen
sysread sysseek system syswrite tell telldir tie tied time times tr
truncate uc ucfirst umask undef unlink unpack unshift untie use utime
values vec vector wait waitpid wantarray warn write -X y
);
my @stdmods = qw(
AnyDBM_File Archive::Extract Archive::Tar Archive::Tar::File
Attribute::Handlers attributes attrs AutoLoader AutoSplit autouse B base
B::Concise B::Debug B::Deparse Benchmark bigint bignum bigrat blib B::Lint
B::Showlex B::Terse B::Xref bytes Carp Carp::Heavy CGI CGI::Apache
CGI::Carp CGI::Cookie CGI::Fast CGI::Pretty CGI::Push CGI::Switch CGI::Util
charnames Class::ISA Class::Struct Compress::Raw::Zlib Compress::Zlib
Config constant CORE CPAN CPAN::API::HOWTO CPAN::FirstTime CPAN::Kwalify
CPAN::Nox CPANPLUS CPANPLUS::Dist::Base CPANPLUS::Dist::Sample
CPANPLUS::Shell::Classic CPANPLUS::Shell::Default::Plugins::HOWTO
CPAN::Version Cwd Data::Dumper DB DB_File DBM_Filter DBM_Filter::compress
DBM_Filter::encode DBM_Filter::int32 DBM_Filter::null DBM_Filter::utf8
Devel::DProf Devel::InnerPackage Devel::Peek Devel::SelfStubber diagnostics
Digest Digest::base Digest::file Digest::MD5 Digest::SHA DirHandle
Dumpvalue DynaLoader Encode Encode::Alias Encode::Byte Encode::CJKConstants
Encode::CN Encode::CN::HZ Encode::Config Encode::EBCDIC Encode::Encoder
Encode::Encoding Encode::GSM0338 Encode::Guess Encode::JP Encode::JP::H2Z
Encode::JP::JIS7 Encode::KR Encode::KR::2022_KR Encode::MIME::Header
Encode::MIME::Name Encode::PerlIO Encode::Supported Encode::Symbol
Encode::TW Encode::Unicode Encode::Unicode::UTF7 encoding
encoding::warnings English Env Errno Exporter Exporter::Heavy
ExtUtils::CBuilder ExtUtils::CBuilder::Platform::Windows ExtUtils::Command
ExtUtils::Command::MM ExtUtils::Constant ExtUtils::Constant::Base
ExtUtils::Constant::Utils ExtUtils::Constant::XS ExtUtils::Embed
ExtUtils::Install ExtUtils::Installed ExtUtils::Liblist ExtUtils::MakeMaker
ExtUtils::MakeMaker::bytes ExtUtils::MakeMaker::Config
ExtUtils::MakeMaker::FAQ ExtUtils::MakeMaker::Tutorial
ExtUtils::MakeMaker::vmsish ExtUtils::Manifest ExtUtils::Mkbootstrap
ExtUtils::Mksymlists ExtUtils::MM ExtUtils::MM_AIX ExtUtils::MM_Any
ExtUtils::MM_BeOS ExtUtils::MM_Cygwin ExtUtils::MM_DOS ExtUtils::MM_MacOS
ExtUtils::MM_NW5 ExtUtils::MM_OS2 ExtUtils::MM_QNX ExtUtils::MM_Unix
ExtUtils::MM_UWIN ExtUtils::MM_VMS ExtUtils::MM_VOS ExtUtils::MM_Win32
ExtUtils::MM_Win95 ExtUtils::MY ExtUtils::Packlist ExtUtils::ParseXS
ExtUtils::testlib Fatal Fcntl feature fields File::Basename FileCache
File::CheckTree File::Compare File::Copy File::DosGlob File::Fetch
File::Find File::Glob File::GlobMapper FileHandle File::Path File::Spec
File::Spec::Cygwin File::Spec::Epoc File::Spec::Functions File::Spec::Mac
File::Spec::OS2 File::Spec::Unix File::Spec::VMS File::Spec::Win32
File::stat File::Temp filetest Filter::Simple Filter::Util::Call FindBin
GDBM_File Getopt::Long Getopt::Std Hash::Util Hash::Util::FieldHash
I18N::Collate I18N::Langinfo I18N::LangTags I18N::LangTags::Detect
I18N::LangTags::List if integer IO IO::Compress::Base IO::Compress::Deflate
IO::Compress::Gzip IO::Compress::RawDeflate IO::Compress::Zip IO::Dir
IO::File IO::Handle IO::Pipe IO::Poll IO::Seekable IO::Select IO::Socket
IO::Socket::INET IO::Socket::UNIX IO::Uncompress::AnyInflate
IO::Uncompress::AnyUncompress IO::Uncompress::Base IO::Uncompress::Gunzip
IO::Uncompress::Inflate IO::Uncompress::RawInflate IO::Uncompress::Unzip
IO::Zlib IPC::Cmd IPC::Open2 IPC::Open3 IPC::SysV IPC::SysV::Msg
IPC::SysV::Semaphore less lib List::Util locale Locale::Constants
Locale::Country Locale::Currency Locale::Language Locale::Maketext
Locale::Maketext::Simple Locale::Maketext::TPJ13 Locale::Script
Log::Message Log::Message::Config Log::Message::Handlers Log::Message::Item
Math::BigFloat Math::BigInt Math::BigInt::Calc Math::BigInt::CalcEmu
Math::BigInt::FastCalc Math::BigRat Math::Complex Math::Trig Memoize
Memoize::AnyDBM_File Memoize::Expire Memoize::ExpireFile
Memoize::ExpireTest Memoize::NDBM_File Memoize::SDBM_File Memoize::Storable
MIME::Base64 MIME::QuotedPrint Module::Build Module::Build::API
Module::Build::Authoring Module::Build::Base Module::Build::Compat
Module::Build::ConfigData Module::Build::Cookbook Module::Build::ModuleInfo
Module::Build::Notes Module::Build::Platform::aix
Module::Build::Platform::Amiga Module::Build::Platform::cygwin
Module::Build::Platform::darwin Module::Build::Platform::Default
Module::Build::Platform::EBCDIC Module::Build::Platform::MacOS
Module::Build::Platform::MPEiX Module::Build::Platform::os2
Module::Build::Platform::RiscOS Module::Build::Platform::Unix
Module::Build::Platform::VMS Module::Build::Platform::VOS
Module::Build::Platform::Windows Module::Build::PPMMaker
Module::Build::YAML Module::CoreList Module::Load Module::Load::Conditional
Module::Loaded Module::Pluggable Module::Pluggable::Object mro NDBM_File
Net::Cmd Net::Config Net::Domain Net::FTP Net::hostent Net::libnetFAQ
Net::netent Net::Netrc Net::NNTP Net::Ping Net::POP3 Net::protoent
Net::servent Net::SMTP Net::Time NEXT O ODBM_File Opcode open ops overload
Package::Constants Params::Check PerlIO PerlIO::encoding PerlIO::scalar
PerlIO::via PerlIO::via::QuotedPrint Pod::Checker Pod::Escapes Pod::Find
Pod::Functions Pod::Html Pod::InputObjects Pod::LaTeX Pod::Man
Pod::ParseLink Pod::Parser Pod::ParseUtils Pod::Perldoc::ToChecker
Pod::Perldoc::ToMan Pod::Perldoc::ToNroff Pod::Perldoc::ToPod
Pod::Perldoc::ToRtf Pod::Perldoc::ToText Pod::Perldoc::ToTk
Pod::Perldoc::ToXml Pod::Plainer Pod::PlainText Pod::Select Pod::Simple
Pod::Simple::Checker Pod::Simple::Debug Pod::Simple::DumpAsText
Pod::Simple::DumpAsXML Pod::Simple::HTML Pod::Simple::HTMLBatch
Pod::Simple::LinkSection Pod::Simple::Methody Pod::Simple::PullParser
Pod::Simple::PullParserEndToken Pod::Simple::PullParserStartToken
Pod::Simple::PullParserTextToken Pod::Simple::PullParserToken
Pod::Simple::RTF Pod::Simple::Search Pod::Simple::SimpleTree
Pod::Simple::Subclassing Pod::Simple::Text Pod::Simple::TextContent
Pod::Simple::XMLOutStream Pod::Text Pod::Text::Color Pod::Text::Overstrike
Pod::Text::Termcap Pod::Usage POSIX re Safe Scalar::Util SDBM_File
Search::Dict SelectSaver SelfLoader Shell sigtrap Socket sort Storable
strict subs Switch Symbol Sys::Hostname Sys::Syslog
Sys::Syslog::win32::Win32 Term::ANSIColor Term::Cap Term::Complete
Term::ReadLine Term::UI Test Test::Builder Test::Builder::Module
Test::Builder::Tester Test::Builder::Tester::Color Test::Harness
Test::Harness::Assert Test::Harness::Iterator Test::Harness::Point
Test::Harness::Results Test::Harness::Straps Test::Harness::TAP
Test::Harness::Util Test::More Test::Simple Test::Tutorial Text::Abbrev
Text::Balanced Text::ParseWords Text::Soundex Text::Tabs Text::Wrap Thread
Thread::Queue threads Thread::Semaphore threads::shared Tie::Array
Tie::File Tie::Handle Tie::Hash Tie::Hash::NamedCapture Tie::Memoize
Tie::RefHash Tie::Scalar Tie::SubstrHash Time::gmtime Time::HiRes
Time::Local Time::localtime Time::Piece Time::Piece::Seconds Time::tm
Unicode::Collate Unicode::Normalize Unicode::UCD UNIVERSAL User::grent
User::pwent utf8 vars version vmsish warnings warnings::register Win32
Win32API::File Win32CORE XS::APItest XSLoader XS::Typemap
);
my %tags = (
UNI => 'perlunitut,perlunifaq,Encode,perluniintro,perlunicode,utf8',
RE => 'perlrequick,perlretut,perlre,perlreref',
REF => 'perlreftut,perllol,perldsc,perlref',
OO => 'perlboot,perltoot,perltooc,perlbot',
OOP => 'perlboot,perltoot,perltooc,perlbot',
FAQ => (join ',', "perlfaq1" .. "perlfaq9"),
MOD => 'perlmod,perlmodlib,perlmodstyle,perlmodinstall,perlnewmod',
kp => 'http://pastebot.nd.edu/perlhelp',
bp => 'http://learn.perl.org/library/beginning_perl/',
cws => 'http://perl.plover.com/FAQs/Namespaces.html',
sfb => 'http://perl.plover.com/FAQs/Buffering.html',
include => 'http://perlmonks.org/?node_id=393426',
podtut => 'http://juerd.nl/site.plp/perlpodtut',
perlpodtut => 'http://juerd.nl/site.plp/perlpodtut',
perltut => 'http://www.steve.gb.com/perl/tutorial.html',
tut => 'http://www.steve.gb.com/perl/tutorial.html',
tutorial => 'http://www.steve.gb.com/perl/tutorial.html',
);
SEE ALSO
http://tnx.nl/404, CPAN::LinksToDocs::No404s, CPAN::LinksToDocs::No404s::Remember, POE::Component::IRC::Plugin::CPAN::LinksToDocs, POE::Component::CPAN::LinksToDocs::No404s POE::Component::CPAN::LinksToDocs::No404s::Remember, POE::Component::IRC::Plugin::CPAN::LinksToDocs::No404s, POE::Component::IRC::Plugin::CPAN::LinksToDocs::No404s::Remember
AUTHOR
Thanks to Juerd Waalboer, the author of http://tnx.nl/404 for providing base code.
Zoffix Znet, <zoffix at cpan.org>
(http://zoffix.com, http://haslayout.net)
BUGS
Please report any bugs or feature requests to bug-cpan-linkstodocs at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CPAN-LinksToDocs. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc CPAN::LinksToDocs
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
COPYRIGHT & LICENSE
Copyright 2008 Zoffix Znet, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.