Bod has asked for the wisdom of the Perl Monks concerning the following question:

Is there a built-in method to find when a Template file was last modified? I want something similar to JavaScript's document.lastModified which always seem to return the current timestamp for dynamically generated pages.

For more completeness in case I'm missing something obvious...

I have lots of web pages on a website. They share a common head.tt and foot.tt files. So (typically) 3 Template files and called for each HTTP request: head, body and foot. 'body' will change for each page. I want to be able to put a custom <meta modified="...."> at the head of the page that can be read by a sitemap generator and along with a custom priority indicator. I'd prefer not to have to update the modified time each time a body template file is changed.

I looked at using the Last-modified HTTP header but that is missing for dynamically generated pages.

Replies are listed 'Best First'.
Re: Last Modified for Template file
by Corion (Patriarch) on Aug 29, 2023 at 20:41 UTC

    Mildly surprisingly, the Template::Toolkit FAQ has your answer:

    [% USE Date %] [% template.name %] last modified [% Date.format(template.modtime) + %]

      Many thanks Corion - I had Googled the question but it didn't give me anything helpful...

      Although, thinking about it further, this answers my question but doesn't solve my problem. I asked the wrong question...

      The modification date I want is that of one Template file, the body. But I want to write it to another file, the head. At the time the head file is processed, I have no way of knowing which body file will be processed so I need to have a rethink and come at the problem a different way.

        You could write the head from the body using the INCLUDE directive, but I guess you will have to show more of your generation process to make it clear.