The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

URI::Title - get the titles of things on the web in a sensible way

VERSION

version 1.904

SYNOPSIS

use URI::Title qw( title );
my $title = title('http://microsoft.com');
print "Title is $title\n";

DESCRIPTION

I keep having to find the title of things on the web. This seems like a really simple request, just get() the object, parse for a title tag, you're done. Ha, I wish. There are several problems with this approach:

What if the resource is on a very slow server? Do we wait for ever or what?
What if the resource is a 900 gig file? You don't want to download that.
What if the page title isn't in a title tag, but is buried in the HTML somewhere?
What if the resource is an MP3 file, or a word document or something?
...

So, let's solve these issues once.

METHODS

only one, the title(url) method. Call it with an url, get the title if possible, undef if it wasn't. Very simple.

SEE ALSO

WWW::GetPageTitle - similar this module, but just handles web pages. The author of that module suggests you should use URI::Title.

NOTES

Embedded title metadata of png files can be extracted if you have installed either Image::ExifTool or Image::PNG::Libpng.

TODO

Many, many, many things. Still unimplemented:

Get titles of MP3 files, Word Docs, PDFs, etc.
Configurable.. well, anything, in fact. Timeout would be a good start.
Better error reporting.

AUTHORS

Tom Insam <tom@jerakeen.org>, original author, 2004-2012.

Philippe Bruhat (BooK) <book@cpan.org>, maintainer, 2014.

COPYRIGHT AND LICENSE

This software is copyright (c) 2004 Tom Insam.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

CREDITS

Invented because of a conversation with rjp, who contributed some eyeball-melting and as-yet-unused code to get titles from MP3s and PDFs, and hex, who has also solved the problem, and got bits done in a nicer way than I did.