Scroll to navigation

Mail::SpamAssassin::Util(3pm) User Contributed Perl Documentation Mail::SpamAssassin::Util(3pm)

NAME

Mail::SpamAssassin::Util - utility functions

DESCRIPTION

A general class for utility functions. Please use this for functions that stand alone, without requiring a $self object, Portability functions especially.

NOTE: The functions in this module are to be considered private. Their API may change at any point, and it's expected that they'll only be used by other Mail::SpamAssassin modules. (TODO: we should probably revisit this if it's useful for plugin development.)

NOTE: Utility functions should not be changing global variables such as $_, $1, $2, ... $/, etc. unless explicitly documented. If these variables are in use by these functions, they should be localized.

$module = first_available_module (@module_list)
Return the name of the first module that can be successfully loaded with "require" from the list. Returns "undef" if none are available.

This is used instead of "AnyDBM_File" as follows:

  my $module = Mail::SpamAssassin::Util::first_available_module
                        (qw(DB_File GDBM_File NDBM_File SDBM_File));
  tie %hash, $module, $path, [... args];
    

Note that "SDBM_File" is guaranteed to be present, since it comes with Perl.

Touch or create a file.

Possible args:

create_exclusive => 1
Create a new empty file safely, only if not existing before

Generates a filename for a temporary file, opens it exclusively and securely, and returns a filehandle to the open file (opened O_RDWR).

If it cannot open a file after 20 tries, it returns "undef".

Generates a directory for temporary files. Creates it securely and returns the path to the directory.

If it cannot create a directory after 20 tries, it returns "undef".

2024-03-20 perl v5.38.2