File::Policy::Default - Default policy for file I/O functions


File-Policy documentation Contained in the File-Policy distribution.

Index


Code Index:

NAME

Top

File::Policy::Default - Default policy for file I/O functions

SYNOPSIS

Top

	use File::Policy;
	use File::Policy qw/check_safe/;   # to import a specific subroutine
	use File::Policy qw/:all/;         # to import all subroutines

	#Checking I/O policy
	check_safe($filename, 'r');
	check_safe($filename, 'w');

	#Portable directory locations
	$logdir = get_log_dir();
	$tmpdir = get_temp_dir();

DESCRIPTION

Top

This defines the default (unrestricted) policy for file I/O with modules such as File::Slurp::WithinPolicy. You may replace this default policy with one for your organisation.

FUNCTIONS

Top

check_safe
	check_safe( FILENAME , MODE );

Checks a filename is safe - dies if not. MODE is r (read) or w (write). Default is no restrictions on file I/O.

get_temp_dir
	$temporary_directory = get_temp_dir();

Returns the path to temporary directory from the TEMP environment variable or File::Spec::Functions::tmpdir(). Note that any return value will have been cleared of a trailing slash.

get_log_dir
	$log_directory = get_log_dir();

Returns the path to log directory from the LOGDIR environment variable or the current directory. Note that any return value will have been cleared of a trailing slash.

VERSION

Top

$Revision: 1.6 $ on $Date: 2005/05/18 15:57:28 $ by $Author: johna $

AUTHOR

Top

John Alden <cpan _at_ bbc _dot_ co _dot_ uk>

COPYRIGHT

Top


File-Policy documentation Contained in the File-Policy distribution.

###############################################################################
# Purpose : Default (unrestricted) File I/O policies
# Author  : John Alden
# Created : March 2005
# CVS     : $Id: Default.pm,v 1.6 2005/05/18 15:57:28 johna Exp $
###############################################################################

package File::Policy::Default;

use strict;
use File::Spec::Functions;
use Carp;

use vars qw($VERSION @EXPORT_OK %EXPORT_TAGS @ISA);
@ISA = qw(Exporter);
@EXPORT_OK = qw(get_temp_dir get_log_dir check_safe);
%EXPORT_TAGS = ('all' => \@EXPORT_OK);
$VERSION = sprintf"%d.%03d", q$Revision: 1.6 $ =~ /: (\d+)\.(\d+)/;

sub get_temp_dir {
	return $ENV{TEMP} || File::Spec::Functions::tmpdir();
}

sub get_log_dir {
	return $ENV{LOGDIR} || File::Spec::Functions::curdir();
}

sub check_safe {
	my ($name, $mode) = @_;
	croak("mode must be r or w") unless($mode eq 'r' || $mode eq 'w');
	return 1;
}

1;