Mail::SpamAssassin::Util - utility functions
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.
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.
secure_tmpfile()
;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
.
secure_tmpdir()
;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
.