PerlIO::fse - Deals with Filesystem Encoding


PerlIO-fse documentation Contained in the PerlIO-fse distribution.

Index


Code Index:

NAME

Top

PerlIO::fse - Deals with Filesystem Encoding

SYNOPSIS

Top

	use utf8;

	# for Windows (including Cygwin)
	open my $in,  '<:fse', $file;

	# Other systems requires explicit fse
	$ENV{PERLIO_FSE} = 'utf8'; # UTF-8 is default
	# or
	use PerlIO::fse 'utf8';




DESCRIPTION

Top

PerlIO::fse mediates encodings between Perl and Filesystem. It converts filenames into native forms if the filenames are utf8-flagged. Otherwise, PerlIO::fse does nothing, looking on it as native forms.

PerlIO::fse attempts to get the filesystem encoding(fse) from $ENV{PERLIO_FSE}, and if defined, it will be used. Or you can use PerlIO::fse $encoding directive to set fse.

If you use Windows (including Cygwin), you need not to set $ENV{PERLIO_FSE} because the current codepage is detected automatically. However, if $ENV{PERLIO_FSE} is set, PerlIO::fse will give it priority.

When there is no encoding available, UTF-8 will be used.

This layer uses Encode internally to convert encodings.

METHODS

Top

PerlIO::fse->get_fse()

PerlIO::fse->set_fse($encoding)

HISTORY

Top

This module started in a part of PerlIO::Util, but now is an independent distribution. There are two reasons for this.

First, PerlIO::fse is unstable. I have seen segmentation fault in the test suit in some perls, but could not find what causes the problem. This problem should be resolved.

Second, authough automatic encoding detection is available in Windows system, it can be implemented in non-Windows, and it should be. This feature may require many tests, but I don't want to increment the version of PerlIO::Util.

SEE ALSO

Top

PerlIO::Util.

Encode.

AUTHOR

Top

Goro Fuji (藤 吾郎) <gfuji (at) cpan.org>.

LICENSE AND COPYRIGHT

Top


PerlIO-fse documentation Contained in the PerlIO-fse distribution.

package PerlIO::fse;

use 5.008_001;
use strict;

our $VERSION = '0.02';

use XSLoader;
XSLoader::load(__PACKAGE__, $VERSION);

use Encode ();

sub import{
	my $class = shift;

	if(@_){
		$class->set_fse(@_);
	}
}

1;
__END__