# phpman > perldoc > HTML::Mason::Tools

## NAME
    [HTML::Mason::Tools](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AMason%3A%3ATools/markdown) - Function library used internally in Mason

## DESCRIPTION
    This module contains exportable functions that are intended to be used by other Mason modules.

    The documentation here is primarily intended to be used by Mason core developers.

    Others who choose to use these functions do so at their own risk, as they may change from
    release to release. You have been warned.

## FUNCTIONS
    read_file
        This function takes a file name and an optional argument indicating whether or not to open
        the final in binary mode. It will return the entire contents of the file as a scalar.

    paths_eq
        Given to paths, this function indicates whether they represent the same location on the
        filesystem. It does not account for symlinks.

    compress_path
        This turns a component path into a filesystem-friendly path by escaping potentially
        meaningful characters.

    absolute_comp_path
        Given a component path and a directory path, this function returns the absolute component
        path, prepending the directory path if needed.

    mason_canonpath
        This function cleans up a component path and returns its canonical version. It is largely
        the same as [File::Spec::Unix::canonpath](https://www.chedong.com/phpMan.php/perldoc/File%3A%3ASpec%3A%3AUnix%3A%3Acanonpath/markdown), with a few additional cleanups.

    pkg_installed
        Given a module name, this function returns true or false to indicate whether or not a
        corresponding .pm file exists.

    pkg_loaded
        Given a module name, this function returns true or false to indicate whether or not the
        module has been loaded into memory.

    load_pkg
        Given a module name, this function attempts to load it. It takes an additional boolean
        parameter indicating whether or not to throw an exception if the module cannot be found. By
        default, if the module cannot be found, this function simply returns false.

        All errors generate exceptions no matter what.

        If the module is loaded successfully, this function returns true.

    taint_is_on
        Returns a boolean value indicating whether taint mode is on or not.

    coerce_to_array
        Given a scalar, which may be a reference, this function attempts to return an array. It
        throws an [HTML::Mason::Exception::Params](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AMason%3A%3AException%3A%3AParams/markdown) exception if this can't be done.

        This function is called from the generated component code as part of a component's argument
        handling.

    coerce_to_hash
        Given a scalar, which may be a reference, this function attempts to return a hash. It throws
        an [HTML::Mason::Exception::Params](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3AMason%3A%3AException%3A%3AParams/markdown) exception if this can't be done.

        This function is called from the generated component code as part of a component's argument
        handling.

    checksum
        Computes a simple checksum of a string. Used for [Compiler::object_id](https://www.chedong.com/phpMan.php/perldoc/Compiler%3A%3Aobjectid/markdown).

