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


version 1.904


  use URI::Title qw( title );
  my $title = title('');
  print "Title is $title\n";


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.


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


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


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


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.


Tom Insam <>, original author, 2004-2012.

Philippe Bruhat (BooK) <>, maintainer, 2014.


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.


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.