Template::Plugin::File - phpMan

Command: man perldoc info search(apropos)  


Sections
NAME SYNOPSIS DESCRIPTION METHODS EXAMPLES AUTHORS COPYRIGHT SEE ALSO
NAME
    Template::Plugin::File - Plugin providing information about files

SYNOPSIS
        [% USE File(filepath) %]
        [% File.path %]         # full path
        [% File.name %]         # filename
        [% File.dir %]          # directory

DESCRIPTION
    This plugin provides an abstraction of a file. It can be used to fetch
    details about files from the file system, or to represent abstract files
    (e.g. when creating an index page) that may or may not exist on a file
    system.

    A file name or path should be specified as a constructor argument. e.g.

        [% USE File('foo.html') %]
        [% USE File('foo/bar/baz.html') %]
        [% USE File('/foo/bar/baz.html') %]

    The file should exist on the current file system (unless "nostat" option
    set, see below) as an absolute file when specified with as leading '"/"'
    as per '"/foo/bar/baz.html"', or otherwise as one relative to the
    current working directory. The constructor performs a "stat()" on the
    file and makes the 13 elements returned available as the plugin items:

        dev ino mode nlink uid gid rdev size
        atime mtime ctime blksize blocks

    e.g.

        [% USE File('/foo/bar/baz.html') %]

        [% File.mtime %]
        [% File.mode %]
        ...

    In addition, the "user" and "group" items are set to contain the user
    and group names as returned by calls to "getpwuid()" and "getgrgid()"
    for the file "uid" and "gid" elements, respectively. On Win32 platforms
    on which "getpwuid()" and "getgrid()" are not available, these values
    are undefined.

        [% USE File('/tmp/foo.html') %]
        [% File.uid %]      # e.g. 500
        [% File.user %]     # e.g. abw

    This user/group lookup can be disabled by setting the "noid" option.

        [% USE File('/tmp/foo.html', noid=1) %]
        [% File.uid %]      # e.g. 500
        [% File.user %]     # nothing

    The "isdir" flag will be set if the file is a directory.

        [% USE File('/tmp') %]
        [% File.isdir %]    # 1

    If the "stat()" on the file fails (e.g. file doesn't exists, bad
    permission, etc) then the constructor will throw a "File" exception.
    This can be caught within a "TRY...CATCH" block.

        [% TRY %]
           [% USE File('/tmp/myfile') %]
           File exists!
        [% CATCH File %]
           File error: [% error.info %]
        [% END %]

    Note the capitalisation of the exception type, '"File"', to indicate an
    error thrown by the "File" plugin, to distinguish it from a regular
    "file" exception thrown by the Template Toolkit.

    Note that the "File" plugin can also be referenced by the lower case
    name '"file"'. However, exceptions are always thrown of the "File" type,
    regardless of the capitalisation of the plugin named used.

        [% USE file('foo.html') %]
        [% file.mtime %]

    As with any other Template Toolkit plugin, an alternate name can be
    specified for the object created.

        [% USE foo = file('foo.html') %]
        [% foo.mtime %]

    The "nostat" option can be specified to prevent the plugin constructor
    from performing a "stat()" on the file specified. In this case, the file
    does not have to exist in the file system, no attempt will be made to
    verify that it does, and no error will be thrown if it doesn't. The
    entries for the items usually returned by "stat()" will be set empty.

        [% USE file('/some/where/over/the/rainbow.html', nostat=1)
        [% file.mtime %]     # nothing

METHODS
    All "File" plugins, regardless of the "nostat" option, have set a number
    of items relating to the original path specified.

  path
    The full, original file path specified to the constructor.

        [% USE file('/foo/bar.html') %]
        [% file.path %]     # /foo/bar.html

  name
    The name of the file without any leading directories.

        [% USE file('/foo/bar.html') %]
        [% file.name %]     # bar.html

  dir
    The directory element of the path with the filename removed.

        [% USE file('/foo/bar.html') %]
        [% file.name %]     # /foo

  ext
    The file extension, if any, appearing at the end of the path following a
    '"."' (not included in the extension).

        [% USE file('/foo/bar.html') %]
        [% file.ext %]      # html

  home
    This contains a string of the form '"../.."' to represent the upward
    path from a file to its root directory.

        [% USE file('bar.html') %]
        [% file.home %]     # nothing

        [% USE file('foo/bar.html') %]
        [% file.home %]     # ..

        [% USE file('foo/bar/baz.html') %]
        [% file.home %]     # ../..

  root
    The "root" item can be specified as a constructor argument, indicating a
    root directory in which the named file resides. This is otherwise set
    empty.

        [% USE file('foo/bar.html', root='/tmp') %]
        [% file.root %]     # /tmp

  abs
    This returns the absolute file path by constructing a path from the
    "root" and "path" options.

        [% USE file('foo/bar.html', root='/tmp') %]
        [% file.path %]     # foo/bar.html
        [% file.root %]     # /tmp
        [% file.abs %]      # /tmp/foo/bar.html

  rel(path)
    This returns a relative path from the current file to another path
    specified as an argument. It is constructed by appending the path to the
    '"home"' item.

        [% USE file('foo/bar/baz.html') %]
        [% file.rel('wiz/waz.html') %]      # ../../wiz/waz.html

EXAMPLES
        [% USE file('/foo/bar/baz.html') %]

        [% file.path  %]      # /foo/bar/baz.html
        [% file.dir   %]      # /foo/bar
        [% file.name  %]      # baz.html
        [% file.home  %]      # ../..
        [% file.root  %]      # ''
        [% file.abs   %]      # /foo/bar/baz.html
        [% file.ext   %]      # html
        [% file.mtime %]      # 987654321
        [% file.atime %]      # 987654321
        [% file.uid   %]      # 500
        [% file.user  %]      # abw

        [% USE file('foo.html') %]

        [% file.path %]           # foo.html
        [% file.dir  %]       # ''
        [% file.name %]           # foo.html
        [% file.root %]       # ''
        [% file.home %]       # ''
        [% file.abs  %]       # foo.html

        [% USE file('foo/bar/baz.html') %]

        [% file.path %]           # foo/bar/baz.html
        [% file.dir  %]       # foo/bar
        [% file.name %]           # baz.html
        [% file.root %]       # ''
        [% file.home %]       # ../..
        [% file.abs  %]       # foo/bar/baz.html

        [% USE file('foo/bar/baz.html', root='/tmp') %]

        [% file.path %]           # foo/bar/baz.html
        [% file.dir  %]       # foo/bar
        [% file.name %]           # baz.html
        [% file.root %]       # /tmp
        [% file.home %]       # ../..
        [% file.abs  %]       # /tmp/foo/bar/baz.html

        # calculate other file paths relative to this file and its root
        [% USE file('foo/bar/baz.html', root => '/tmp/tt2') %]

        [% file.path('baz/qux.html') %]         # ../../baz/qux.html
        [% file.dir('wiz/woz.html')  %]     # ../../wiz/woz.html

AUTHORS
    Michael Stevens wrote the original "Directory" plugin on which this is
    based. Andy Wardley split it into separate "File" and "Directory"
    plugins, added some extra code and documentation for "VIEW" support, and
    made a few other minor tweaks.

COPYRIGHT
    Copyright 2000-2007 Michael Stevens, Andy Wardley.

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

SEE ALSO
    Template::Plugin, Template::Plugin::Directory, Template::View


Generated by phpMan Author: Che Dong On Apache Under GNU General Public License - MarkDown Format
2026-05-23 07:38 @216.73.217.24 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top