1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
package File::Rename::Unicode;
use 5.032; # use 5.012;
use strict;
use warnings;
use Encode qw(encode decode);
our $VERSION = '1.30';
sub code {
my $code = shift;
my $encoding = shift;
return
sub {
use feature 'unicode_strings';
if ( $encoding ) {
$_ = decode($encoding, $_);
}
else {
utf8::upgrade $_;
}
$code->();
if ( $encoding ) {
$_ = encode($encoding, $_);
}
};
}
1;
__END__
=head1 NAME
File::Rename::Unicode - Unicode wrapper for user code for File::Rename
=head1 SYNOPSIS
require File::Rename::Unicode;
my $sub = File::Rename::Unicode::code($code, $enc);
=head1 DESCRIPTION
=head2 FUNCTIONS
=over 4
=item C<code()>
Wrap the call to user code in utf8/unicode features.
=back
=head2 OPTIONS
See L<rename> script --unicode option
See L<File::Rename> for unicode_strings option
=head1 ENVIRONMENT
No environment variables are used.
=head1 SEE ALSO
File::Rename(3), rename(1)
=head1 AUTHOR
Robin Barker <RMBarker@cpan.org>
=head1 DIAGNOSTICS
None
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2021 by Robin Barker
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8 or,
at your option, any later version of Perl 5 you may have available.
=cut
|