NAME
SJIS2004::R2 - provides minimal SJIS2004 I/O subroutines by short name
SYNOPSIS
use SJIS2004::R2;
@result = mbeach($utf8str)
$result = mbtr($utf8str, 'ABC', 'XYZ', 'cdsr')
$result = iolen($utf8str)
$result = iomid($utf8expr, $offset_as_sjis2004, $length_as_sjis2004, $utf8replacement)
@result = ioget(FILEHANDLE)
$result = ioput(FILEHANDLE, @utf8str)
$result = ioputf(FILEHANDLE, $utf8format, @utf8list)
@result = iosort(@utf8str)
$result = $utf8str =~ $mb{qr/$utf8regex/imsxo}
$result = $utf8str =~ m<$mb{qr/$utf8regex/imsxo}>gc
$result = $utf8str =~ s<$mb{qr/before/imsxo}><after>egr
MBCS SUBROUTINES for SCRIPTING
It is useful to treat regex in perl script as code point of UTF-8. Following subroutines and tied hash variable provide UTF-8 semantics for us.
------------------------------------------------------------------------------------------------------------------------------------------
Acts as SBCS Acts as MBCS
Octet in Script Octet in Script Note and Limitations
------------------------------------------------------------------------------------------------------------------------------------------
// or m// or qr// $mb{qr/$utf8regex/imsxo} not supports metasymbol \X that match grapheme
m<$mb{qr/$utf8regex/imsxo}>gc not support range of codepoint(like an "[A-Z]")
not supports POSIX character class (like an [:alpha:])
(such as \N{GREEK SMALL LETTER EPSILON}, \N{greek:epsilon}, or \N{epsilon})
not supports character properties (like \p{PROP} and \P{PROP})
Special Escapes in Regex Support Perl Version
--------------------------------------------------------------------------------------------------
$mb{qr/ \x{Unicode} /} since perl 5.006
$mb{qr/ [^ ... ] /} since perl 5.008 ** CAUTION ** perl 5.006 cannot this
$mb{qr/ \h /} since perl 5.010
$mb{qr/ \v /} since perl 5.010
$mb{qr/ \H /} since perl 5.010
$mb{qr/ \V /} since perl 5.010
$mb{qr/ \R /} since perl 5.010
$mb{qr/ \N /} since perl 5.012
------------------------------------------------------------------------------------------------------------------------------------------
s/before/after/imsxoegr s<$mb{qr/before/imsxo}><after>egr
------------------------------------------------------------------------------------------------------------------------------------------
split(//,$_) mbeach($utf8str) split $utf8str into each characters
------------------------------------------------------------------------------------------------------------------------------------------
tr/// or y/// mbtr($utf8str, 'ABC', 'XYZ', 'cdsr') not support range of codepoint(like a "tr/A-Z/a-z/")
------------------------------------------------------------------------------------------------------------------------------------------
MBCS SUBROUTINES for I/O
If you use following subroutines then I/O encoding convert is automatically. These subroutines provide SJIS2004 octets semantics for you.
------------------------------------------------------------------------------------------------------------------------------------------
Acts as SBCS Acts as MBCS
Octet in Script Octet of I/O Encoding Note and Limitations
------------------------------------------------------------------------------------------------------------------------------------------
<FILEHANDLE> ioget(FILEHANDLE) get UTF-8 codepoint octets from SJIS2004 file
------------------------------------------------------------------------------------------------------------------------------------------
length iolen($utf8str) octet count of UTF-8 string as SJIS2004 encoding
------------------------------------------------------------------------------------------------------------------------------------------
print ioput(FILEHANDLE, @utf8str) print @utf8str as SJIS2004 encoding
------------------------------------------------------------------------------------------------------------------------------------------
printf ioputf(FILEHANDLE, $utf8format, @utf8list) printf @utf8str as SJIS2004 encoding
------------------------------------------------------------------------------------------------------------------------------------------
sort iosort(@utf8str) sort @utf8str as SJIS2004 encoding
------------------------------------------------------------------------------------------------------------------------------------------
sprintf (nothing) "iosputf" is bad interface because it makes confuse by bringing
both internal code and external code into your script
------------------------------------------------------------------------------------------------------------------------------------------
substr iomid($utf8expr, $offset_as_sjis2004, $length_as_sjis2004, $utf8replacement)
substr $utf8expr as SJIS2004 octets
------------------------------------------------------------------------------------------------------------------------------------------
AUTHOR
INABA Hitoshi <ina@cpan.org>
This project was originated by INABA Hitoshi.
LICENSE AND COPYRIGHT
This software is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.