Search::Sitemap::URL - URL Helper class for Search::Sitemap


  use Search::Sitemap;


This is a helper class that supports Search::Sitemap and Search::Sitemap::Index.




Change the URL associated with this object. For a Search::Sitemap this specifies the URL to add to the sitemap, for a Search::Sitemap::Index, this is the URL to the sitemap.


Set the change frequency of the object. This field is not used in sitemap indexes, only in sitemaps.


Set or retrieve the last modified time. This will return a DateTime object. When setting it, you can provide any of these types of values:

a complete ISO8601 time string

A complete time string will be accepted in exactly this format:


  YYYY   - 4-digit year
  MM     - 2-digit month (zero padded)
  DD     - 2-digit year (zero padded)
  T      - literal character 'T'
  HH     - 2-digit hour (24-hour, zero padded)
  SS     - 2-digit second (zero padded)
  +TZ:TZ - Timezone offset (hours and minutes from GMT, 2-digit, zero padded)
epoch time

Seconds since the epoch, such as would be returned from time(). If you provide an epoch time, then an appropriate ISO8601 time will be constructed with gmtime() (which means the timezone offset will be +00:00).

an ISO8601 date (YYYY-MM-DD)

A simple date in YYYY-MM-DD format.

a DateTime object.

If a DateTime object is provided, then an appropriate timestamp will be constructed from it.

a HTTP::Response object.

If given an HTTP::Response object, the last modified time will be calculated from whatever time information is available in the response headers. Currently this means either the Last-Modified header, or the current time - the current_age() calculated by the response object. This is useful for building web crawlers.

a File::stat object.

If given a File::stat object, the last modified time will be set from "mtime" in File::stat.

a Path::Class::File object.

If given a Path::Class::File object, the last modified time will be set to the mtime of the referenced file.

Note that in order to conserve memory, any of these items that you provide will be converted to a complete ISO8601 time string when they are stored. This means that if you pass an object to lastmod(), you can't get it back out. If anyone actually has a need to get the objects back out, then I might make a configuration option to store the objects internally.

If you have suggestions for other types of date/time objects or formats that would be useful, let me know and I'll consider them.


Get or set the priority. This field is not used in sitemap indexes, only in sitemaps.


Set to a true value if this URL refers to a page that is intended for mobile devices. This will affect how some search engines index the URL.

For more information on mobile sitemaps, see


Returns this URL and it's associated data as an XML::Twig::Elt object. This is primarily an internal use method, you probably don't need to mess with it.






Jason Kohles, <>


Copyright (C) 2005-2009 by Jason Kohles

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