1;
__END__
=pod
=encoding Shift_JIS
=head1 NAME
Sjis-JA - JAPANESE DOCUMENT
=head1 vñ
=head2 gpO
#!/usr/bin/perl
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;
=head2 gpã
XNvg ShiftJIS_script.pl ÌÉȺðLqµÄ...
#!/usr/bin/perl
use Sjis;
R}hvvgÅȺÌæ¤ÉÀs·é
perl ShiftJIS_script.pl argv1 argv2 ...
Sjis\tgEFAÍAShiftJIS ÉæÁÄ©ê½ Perl XNvgÆperlC^v^
ÌÔÉÊu·é~hEFAÅ·B
Perl ÍAeLXgª90%A»êÈO̪10%Å\¬³êéâèÉü¯ÄÅK»³
êÄ¢éƾíêĢܷB±±Å¢¤eLXgÉ ShiftJIS ªÜÜêÈ©Á½ÆµÄà
Perl3 È~Å êÎoCif[^ðµ¦éÌÅAShiftJIS f[^ðoCif[^Æ
µÄµ¤±ÆªÂ\Å·B
"use Sjis;" ÉæÁÄAXNvgð ShiftJIS ÅLq·é±ÆªÅ«éæ¤ÉÈèA
³K\»ðͶßÆ·é perl Ìeí@\Í ShiftJIS Éηéæ¤ÉÈèÜ·B
Ö length ªµ¤·³ÌPÊÍoCgÌÜÜÅAUTF8tOÍgpµÜ¹ñB
=head1 ±Ì¶Ì\LÌÔêÉ¢Ä
¢íäéVtgJISÉηé¼ÌÉ¢ÄA±Ì¶ÅÍ ShiftJIS Ƶ½èVtgJIS
Ƶ½è Shift-JIS Ƶ½èµÄ¢Ü·ªAÓ¡·éàÌͯ¶¾Æl¦Ä¾³¢B
±êçðLq·éÛÉQƵ½¿ª Á½êATË»ÌÜÜÌ\LðcµÄ¢Ü·B
»êçðÏXµÈ¢Ù¤ªæ¢ÆvÁ½½ßA±Ì¶SÌƵÄÍê³êĢܹ
ñB 究߲¹³¾³¢B
=head1 à¤ÐÆÂÌ¢(Ýç¢)
JPerl ÍÆÄàDê½\tgEFAÅ·B¨ÁÆA±±Å¢¤ JPerl Íú{êÎÅÌ
Perl ̱ÆÅAJava â JVM ÆÍÖWª èܹñBëð³ê½èAúÒ³ê½è·é
Ìà¢éÌÅA±Ì\tgEFAÍ Sjis Æ¢¤¼Oɵܵ½B»ÌãAgbvx
̼Oðð¯é½ß Char::Sjis Æ¢¤¼OÅfBXgr
[Vð쬷éæ¤É
µÜµ½ªAÊígp·éÌÍ]Ì Sjis.pm, Esjis.pm Åæ¢Æv¢Ü·B
ƱëÅA»Ì JPerl Ío[W 5.005_04 È~AeiX³êĢܹñB
åÏcOȱÆÉAJPerlÌJðsÁ½nÓ ¶³ñÍ The Perl Confernce Japan
1998 ÉÄ
"í½È×Íæ꽩çÌlæëµË"
Æ¢¤bZ[WðcµAPerl ©ç£êÄ¢Áĵܢܵ½B
XCh15 "jperl Ì¡ã"
ftp://ftp.oreilly.co.jp/pcjp98/watanabe/jperlconf.ppt
«ÁÆN©ªø«p¢Å¢Äêé¾ë¤B
ÈÇÆúÒðµÈªç10NÔAÒ¿±¯éÔÉ¢EÍá¤ûüÖÆiñÅ¢Ìŵ½B
±Ì\tgEFAÍ ShiftJIS Å©ê½ Perl XNvgðGXP[v·é½ßÌ
\[XR[htB^Å·BGXP[vÉæÁĶR[hªÏ»·é±ÆÍ è
ܹñBàµÏ»µ½êÍAoOÅ·ÌÅñ¸¯éÆ èª½¢Å·B
¬÷µ½\tgEFA©çȺ̱ÆðwñűÌ\tgEFAÍ쬳êܵ½B
=over 2
=item * Perl4 ©ç Perl5 Ìæ¤ÈãÊÝ·«
=item * jcode.pl Ìæ¤ÈÅåÀÌÚA«
=item * JPerl Ìæ¤ÉUTF8tOðgí¸AShiftJISð»ÌÜܵ¢APerl Í1Â̾êÌÜÜ
=item * Encode W
[Ìæ¤É Perl Í1ÂÌC^v^ÌÜÜ
=item * Ruby Ìæ¤É¶WƧÈè@
=item * cpanminus Ìæ¤ÉmVbNÈXNvg
=item * Perl ©gÌæ¤É TMTOWTDI(There's more than one way to do it)
=back
±Ì\tgEFAÆPerl̢ɢÄl¦éƹªÇ«Ç«µÜ·BÝȳñ¾ÁÄ
«ÁÆ»¤Åµå¤H
=head1 î{IÈdgÝ
ÅßAȺÌ[ðÄ©µÜµ½B
[Tokyo.pm] jus Benkyoukai
http://mail.pm.org/pipermail/tokyo-pm/1999-September/001854.html
("SJIS.pm" Æ¢¤t@C¼ÅÛ¶³êÄ¢éàÌƵܷ)
package SJIS;
use Filter::Util::Call;
sub multibyte_filter {
my $status;
if (($status = filter_read()) > 0 ) {
s/([\x81-\x9f\xe0-\xef])([\x40-\x7e\x80-\xfc])/
sprintf("\\x%02x\\x%02x",ord($1),ord($2))
/eg;
}
$status;
}
sub import {
filter_add(\&multibyte_filter);
}
1;
î{IÉÍA±Ì\tgEFAÍãLÌæ¤È±Æðs¢Ü·B
½¾µAFilter::Util::Call ðpµÄ¢È¢_APerl Ì\¶ðð͵ÄKvɶÄ
GXP[v·é_ªÙÈèÜ·B
=head1 CXg[û@(ÈPÈû@)
CPAN ©ç Sjis.pm Æ Esjis.pm ð_E[hµ Perl Ì lib fBNgÉi[µÜ·B
=head1 CXg[û@(makeðg¤ê)
perl Makefile.PL
make test
make install
=head1 CXg[û@(makeðgíÈ¢ê)
perl pMakefile.pl --- pMakefile.pl ª pmake.bat 𶬵ܷ
pmake.bat
pmake.bat test
pmake.bat install --- »ÝgpÌ perl «ÉCXg[µÜ·
pmake.bat dist --- CPAN zzppbP[WðìèÜ·
pmake.bat ptar.bat --- ptar.bat ð쬵ܷ
=head1 \tgEFAÌê
Sjis.pm --- ShiftJIS \[XR[htB^
Esjis.pm --- Sjis.pm Ì^C[`
Char/Sjis.pm --- CPANeX^[ü¯Ì Sjis.pm
Char/Esjis.pm --- CPANeX^[ü¯Ì Esjis.pm
=head1 DOSVXeɨ¯éR}hCÌChJ[hWJ
DOSVXeÌWVF(COMMAND.COM ¨æÑ cmd.exe)ÍAN®·évOÖn·
p[^ÌChJ[hWJðs¢Ü¹ñB»ÌãíèÆµÄ Esjis.pm àÌ import
ÖªChJ[hWJðs¤æ¤ÉÈÁĢܷB
Ql Esjis.pm ©ç²
#
# @ARGV wildcard globbing
#
sub import {
if ($^O =~ /\A (?: MSWin32 | NetWare | symbian | dos ) \z/oxms) {
my @argv = ();
for (@ARGV) {
# has space
if (/\A (?:$q_char)*? [ ] /oxms) {
if (my @glob = Esjis::glob(qq{"$_"})) {
push @argv, @glob;
}
else {
push @argv, $_;
}
}
# has wildcard metachar
elsif (/\A (?:$q_char)*? [*?] /oxms) {
if (my @glob = Esjis::glob($_)) {
push @argv, @glob;
}
else {
push @argv, $_;
}
}
# no wildcard globbing
else {
push @argv, $_;
}
}
@ARGV = @argv;
}
}
=head1 ßÄÌJPerl
g¢û(»Ì1)
1. XNvg ShiftJIS_script.pl ÌÉȺ̢¸ê©ðLqµÄ...
use Sjis;
use Sjis ver.sion; --- Sjis.pm Ìo[Wª ver.sion ÈãÈçÀsÂ
use Sjis ver.sion.0; --- Sjis.pm Ìo[Wª ver.sion ÅȯêÎ die ·é
use Sjis qw(ord reverse getc); --- ord, reverse, getc Ìg£@\ðg¤ê
use Sjis ver.sion qw(ord reverse getc);
use Sjis ver.sion.0 qw(ord reverse getc);
¦ no Sjis; ÍpūܹñB
use Sjis ver.sion.0; `®¾Æ Sjis \tgEFAÌo[WÌãÀEºÀÌoû
ðwèÅ«Ü·BÀsÌ Sjis \tgEFAªLqµ½o[WÆÒÁ½è¯¶Å
È¢ÈçÎ die µÜ·Bá¦ÎAuse Sjis 0.88.0; ÆLq·éÆ Sjis \tgEFA
Ìo[Wª 0.88 Å é±ÆðÛáÅ«Ü·B
2. R}hvvgÅȺÌæ¤ÉÀs·é
perl ShiftJIS_script.pl wild* *card and '*quote*' on MSWin32
? * ðgÁÄChJ[hÌwèªÅ«Ü·
' ` ' ðgÁÄNH[g·é±ÆªÅ«Ü·
g¢û(»Ì2)
R}hvvgÅȺÌæ¤ÉÀs·é
C:\>perl Sjis.pm ShiftJIS_script.pl > Escaped_script.pl.e
C:\>perl Escaped_script.pl.e
ShiftJIS_script.pl --- ShiftJIS Å©ê½XNvg
Escaped_script.pl.e --- GXP[v³ê½XNvg
g¦éTu[`ÆÖ
Sjis::ord(...);
Sjis::reverse(...);
Sjis::getc(...);
Sjis::length(...);
Sjis::substr(...);
Sjis::index(...);
Sjis::rindex(...);
CORE::chop(...);
CORE::ord(...);
CORE::reverse(...);
CORE::getc(...);
CORE::index(...);
CORE::rindex(...);
ȺÍ_~[Tu[`ƵÄpÓ³êÄ¢é
utf8::upgrade(...);
utf8::downgrade(...);
utf8::encode(...);
utf8::decode(...);
utf8::is_utf8(...);
utf8::valid(...);
bytes::chr(...);
bytes::index(...);
bytes::length(...);
bytes::ord(...);
bytes::rindex(...);
bytes::substr(...);
=head1 GXP[vÉæéãÊÝ·«ÌmÛ
±Ì\tgEFAÍßÌàÌðóµ½è͹¸AíÉuGXP[vvÉæÁÄ@\ðÇÁ
µÄ¢Ü·B¾©ç¡ÜÅÂ\Å Á½±ÆªsÂ\ÉÈé±ÆÍ èܹñB±ÌAv
[`ÍAãÞªµÄ³êÈ¢ªìÉLøÅ·BȨAãÊÝ·«ÌmÛ̽ßÉA
Perl©gÌñÝ·Èg£ðæè±Æà èÜ·B
=head1 XNvgÌGXP[v
쬵½XNvgÉ 'use Sjis;' ÆKvª èÜ·B
---------------------------------
ÈO Èã
---------------------------------
(ȵ) use Sjis;
---------------------------------
=head1 }`oCg¶ÌGXP[v
±Ì\tgEFAÉæÁÄA}`oCg¶Ìæ2oCgÌ @ [ \ ] ^ ` { | }
̼OÉ chr(0x5c) ª}ü³êÜ·BÎÛÍȺÌÓÅ·B
=over 2
=item * VONH[g̶ñ ('', q{}, <<'END' and qw{})
=item * _uNH[g̶ñ ("", qq{}, <<END, <<"END", ``, qx{} and <<`END`)
=item * VONH[g̳K\» (m'', s''', split(''), split(m'') and qr'')
=item * _uNH[g̳K\» (//, m//, ??, s///, split(//), split(m//) and qr//)
=item * tr/// Ì̶ (tr/// and y///)
=back
á: J^JiÌu\vR[hÍ "\x83\x5C"
©¦û _v
-----------------------------------------
source script "`/" [83 5c]
-----------------------------------------
±±Å use Sjis; ðÀs
_v
-----------------------------------------
escaped script "`\/" [83 [5c] 5c]
-----------------------------------------
^--- Sjis \tgEFAÅGXP[v³êé
Ql ©¦û _v
-----------------------------------------
your eye's "`/\" [83 5c] [5c]
-----------------------------------------
perl eye's "`\/" [83] \[5c]
-----------------------------------------
_v
-----------------------------------------
in the perl "`/" [83] [5c]
-----------------------------------------
=head1 ³K\»ÖÌ}`oCgAJ[OÌÇÁ
Sjis.pm ͳK\»ÌæªÉ}`oCgAJ[Oðt¯«µÜ·B
--------------------------------------------------------------------------------
O ã
--------------------------------------------------------------------------------
m/regexp/ m/${Esjis::anchor}(?:regexp).../
--------------------------------------------------------------------------------
${Esjis::anchor} ÌïÌIÈàeÉ¢ÄÍÊruSjis \tgEFAÌ}`oCgA
J[OvÉLqµÄ èÜ·B
=head1 æ2INebgÌGXP[v
Sjis.pm ͳK\»Ì}`oCg¶Ìæ2INebgðGXP[vµÜ·B
--------------------------------------------------------------------------------
O ã
--------------------------------------------------------------------------------
m{...`/...} m{...`/\...}
--------------------------------------------------------------------------------
=head1 ³K\»Ì}`oCg¶Ìµ¢É¢Ä
Sjis.pm Í}`oCg¶ÖÌÊwèqA¨æÑ}`oCg¶ÌJX^¶NX
ðNX^OµÜ·BܽNbVbNÈ Perl ¶NXAPOSIX X^C̶
NXð}`oCg¶ÎÅÉ«·¦Ü·B
--------------------------------------------------------------------------------
O ã
--------------------------------------------------------------------------------
m/...MULTIOCT+.../ m/...(?:MULTIOCT)+.../
m/...[AN-EM].../ m/...(?:A[N-Z]|[B-D][A-Z]|E[A-M]).../
m/...\D.../ m/...(?:${Esjis::eD}).../
m/...[[:^digit:]].../ m/...(?:${Esjis::not_digit}).../
--------------------------------------------------------------------------------
=head1 Esjis::ignorecase() ÌÄÑoµ
Sjis.pm Í /i CüqÌãíèÉ Esjis::ignorecase() ÌÄoµð«Á¦Ü·B
--------------------------------------------------------------------------------
O ã
--------------------------------------------------------------------------------
m/...$var.../i m/...@{[Esjis::ignorecase($var)]}.../
--------------------------------------------------------------------------------
=head1 ¶wü̳K\»
/b CüqÌÈ¢³K\»Í¶wüÌ«ðµÜ·B
ÂÜèA/./ (hbg)ͶÉ}b`µÜ·B
--------------------------------------------------------------------------------
O ã
--------------------------------------------------------------------------------
/regexp/ / ãLQÆ $Esjis::matched/
m/regexp/ m/ ãLQÆ $Esjis::matched/
?regexp? m? ãLQÆ $Esjis::matched?
m?regexp? m? ãLQÆ $Esjis::matched?
$_ =~ ($_ =~ m/ ãLQÆ $Esjis::matched/) ?
s/regexp/replacement/ eval{ Esjis::s_matched(); local $^W=0; my $__r=qq/replacement/; $_="${1}$__r$'"; 1 } :
undef
$_ !~ ($_ !~ m/ ãLQÆ $Esjis::matched/) ?
s/regexp/replacement/ 1 :
eval{ Esjis::s_matched(); local $^W=0; my $__r=qq/replacement/; $_="${1}$__r$'"; undef }
split(/regexp/) Esjis::split(qr/regexp/)
split(m/regexp/) Esjis::split(qr/regexp/)
split(qr/regexp/) Esjis::split(qr/regexp/)
qr/regexp/ qr/ ãLQÆ $Esjis::matched/
--------------------------------------------------------------------------------
=head1 oCgwü̳K\»
/b CüqðtÁµ½³K\»ÍoCgwüÌ«ðµÜ·B
ÂÜèA/./ (hbg)ÍoCgÉ}b`µÜ·B
--------------------------------------------------------------------------------
O ã
--------------------------------------------------------------------------------
/regexp/b /(?:regexp)$Esjis::matched/
m/regexp/b m/(?:regexp)$Esjis::matched/
?regexp?b m?regexp$Esjis::matched?
m?regexp?b m?regexp$Esjis::matched?
$_ =~ ($_ =~ m/(\G[\x00-\xFF]*?)(?:regexp)$Esjis::matched/) ?
s/regexp/replacement/b eval{ Esjis::s_matched(); local $^W=0; my $__r=qq/replacement/; $_="${1}$__r$'"; 1 } :
undef
$_ !~ ($_ !~ m/(\G[\x00-\xFF]*?)(?:regexp)$Esjis::matched/) ?
s/regexp/replacement/b 1 :
eval{ Esjis::s_matched(); local $^W=0; my $__r=qq/replacement/; $_="${1}$__r$'"; undef }
split(/regexp/b) split(qr/regexp/)
split(m/regexp/b) split(qr/regexp/)
split(qr/regexp/b) split(qr/regexp/)
qr/regexp/b qr/(?:regexp)$Esjis::matched/
--------------------------------------------------------------------------------
=head1 ¶NXÌGXP[v
ßÌperlÆÌÝ·«ðÛ½ßɶNXÍȺÌæ¤ÉÄè`³êĢܷB
---------------------------------------------------------------
escape class
---------------------------------------------------------------
. ${Esjis::dot}
${Esjis::dot_s} (/s Cüq è)
\d [0-9]
\s [\x09\x0A\x0B\x0C\x0D\x20]
\w [0-9A-Z_a-z]
\D ${Esjis::eD}
\S ${Esjis::eS}
\W ${Esjis::eW}
\h [\x09\x20]
\v [\x0A\x0B\x0C\x0D]
\H ${Esjis::eH}
\V ${Esjis::eV}
\C [\x00-\xFF]
\X X (½¾ÌpAX Å·)
\R ${Esjis::eR}
\N ${Esjis::eN}
---------------------------------------------------------------
¯lÉ POSIX X^C̶NXàÄè`³êĢܷB
---------------------------------------------------------------
escape class
---------------------------------------------------------------
[:alnum:] [\x30-\x39\x41-\x5A\x61-\x7A]
[:alpha:] [\x41-\x5A\x61-\x7A]
[:ascii:] [\x00-\x7F]
[:blank:] [\x09\x20]
[:cntrl:] [\x00-\x1F\x7F]
[:digit:] [\x30-\x39]
[:graph:] [\x21-\x7F]
[:lower:] [\x61-\x7A]
[\x41-\x5A\x61-\x7A] (/i Cüq è)
[:print:] [\x20-\x7F]
[:punct:] [\x21-\x2F\x3A-\x3F\x40\x5B-\x5F\x60\x7B-\x7E]
[:space:] [\s\x0B]
[:upper:] [\x41-\x5A]
[\x41-\x5A\x61-\x7A] (/i Cüq è)
[:word:] [\x30-\x39\x41-\x5A\x5F\x61-\x7A]
[:xdigit:] [\x30-\x39\x41-\x46\x61-\x66]
[:^alnum:] ${Esjis::not_alnum}
[:^alpha:] ${Esjis::not_alpha}
[:^ascii:] ${Esjis::not_ascii}
[:^blank:] ${Esjis::not_blank}
[:^cntrl:] ${Esjis::not_cntrl}
[:^digit:] ${Esjis::not_digit}
[:^graph:] ${Esjis::not_graph}
[:^lower:] ${Esjis::not_lower}
${Esjis::not_lower_i} (/i Cüq è)
[:^print:] ${Esjis::not_print}
[:^punct:] ${Esjis::not_punct}
[:^space:] ${Esjis::not_space}
[:^upper:] ${Esjis::not_upper}
${Esjis::not_upper_i} (/i Cüq è)
[:^word:] ${Esjis::not_word}
[:^xdigit:] ${Esjis::not_xdigit}
---------------------------------------------------------------
\b Æ \B àßÌperlÆÌÝ·«ðÛ½ßÉÄè`³êĢܷB
---------------------------------------------------------------
escape class
---------------------------------------------------------------
\b ${Esjis::eb}
\B ${Esjis::eB}
---------------------------------------------------------------
ãLÌè`ÍAt@C Esjis.pm ÌÅȺÌæ¤Éè`³êĢܷB
---------------------------------------------------------------------------------------------------------------------------------------------------------
class Definition
---------------------------------------------------------------------------------------------------------------------------------------------------------
${Esjis::anchor} qr{\G(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])*?}
32766INebgð´¦é¶ñðµ¦éæ¤É·é½ßAActivePerl5.6È~(5.10.0ÜÞ)Aܽͻ̼ÌPerl5.10.1È~ÌêÍȺÌæ¤ÉÈèÜ·
qr{\G(?(?=.{0,32766}\z)(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])*?|(?(?=[\x00-\x80\xA0-\xDF\xFD-\xFF]+\z).*?|(?:.*?[\x00-\x80\xA0-\xDF\xFD-\xFF](?:[^\x00-\x80\xA0-\xDF\xFD-\xFF]{2})*?)))}oxms;
${Esjis::dot} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x0A])}
${Esjis::dot_s} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])}
${Esjis::eD} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC0-9])}
${Esjis::eS} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x09\x0A\x0B\x0C\x0D\x20])}
${Esjis::eW} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC0-9A-Z_a-z])}
${Esjis::eH} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x09\x20])}
${Esjis::eV} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x0A\x0B\x0C\x0D])}
${Esjis::eR} qr{(?:\x0D\x0A|[\x0A\x0D])}
${Esjis::eN} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x0A])}
${Esjis::not_alnum} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x30-\x39\x41-\x5A\x61-\x7A])}
${Esjis::not_alpha} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x41-\x5A\x61-\x7A])}
${Esjis::not_ascii} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x00-\x7F])}
${Esjis::not_blank} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x09\x20])}
${Esjis::not_cntrl} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x00-\x1F\x7F])}
${Esjis::not_digit} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x30-\x39])}
${Esjis::not_graph} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x21-\x7F])}
${Esjis::not_lower} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x61-\x7A])}
${Esjis::not_lower_i} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])}
${Esjis::not_print} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x20-\x7F])}
${Esjis::not_punct} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x21-\x2F\x3A-\x3F\x40\x5B-\x5F\x60\x7B-\x7E])}
${Esjis::not_space} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\s\x0B])}
${Esjis::not_upper} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x41-\x5A])}
${Esjis::not_upper_i} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])}
${Esjis::not_word} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x30-\x39\x41-\x5A\x5F\x61-\x7A])}
${Esjis::not_xdigit} qr{(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC\x30-\x39\x41-\x46\x61-\x66])}
${Esjis::eb} qr{(?:\A(?=[0-9A-Z_a-z])|(?<=[\x00-\x2F\x40\x5B-\x5E\x60\x7B-\xFF])(?=[0-9A-Z_a-z])|(?<=[0-9A-Z_a-z])(?=[\x00-\x2F\x40\x5B-\x5E\x60\x7B-\xFF]|\z))}
${Esjis::eB} qr{(?:(?<=[0-9A-Z_a-z])(?=[0-9A-Z_a-z])|(?<=[\x00-\x2F\x40\x5B-\x5E\x60\x7B-\xFF])(?=[\x00-\x2F\x40\x5B-\x5E\x60\x7B-\xFF]))}
---------------------------------------------------------------------------------------------------------------------------------------------------------
=head1 \N, \p, \P, \X ÌAGXP[v
±Ì\tgEFAÉæÁÄp̳K\»^V{ \N, \p, \P, \X ÌæªÌ
'\' ªæè©êÜ·B±Ìû@ÅÛ»Ìã©ðð¯é±ÆªÅ«Ü·B
AGXP[vãÉ "{" ðGXP[v·éæ¤Éµ½RÍA
Deprecate literal unescaped "{" in regexes.
http://perl5.git.perl.org/perl.git/commit/2a53d3314d380af5ab5283758219417c6dfa36e9
ÉæéàÌÅ·B
------------------------------------
O ã
------------------------------------
\N{CHARNAME} N\{CHARNAME}
\p{L} p\{L}
\p{^L} p\{^L}
\p{\^L} p\{\^L}
\pL pL
\P{L} P\{L}
\P{^L} P\{^L}
\P{\^L} P\{\^L}
\PL PL
\X X
------------------------------------
=head1 gÝÖÌGXP[v
±Ì\tgEFAÉæÁÄÖ¼ÌæªÉ 'Esjis::' ª«ÁíèGXP[v³êÜ·B
Esjis::* Tu[`Í Esjis.pm ªñµÜ·B
--------------------------------------------
O ã ®ì
--------------------------------------------
length length oCgwü
substr substr oCgwü
pos pos oCgwü
split Esjis::split ¶wü
tr/// Esjis::tr ¶wü
tr///b tr/// oCgwü
tr///B tr/// oCgwü
y/// Esjis::tr ¶wü
y///b tr/// oCgwü
y///B tr/// oCgwü
chop Esjis::chop ¶wü
index Esjis::index ¶wü
rindex Esjis::rindex ¶wü
lc Esjis::lc ¶wü
lcfirst Esjis::lcfirst ¶wü
uc Esjis::uc ¶wü
ucfirst Esjis::ucfirst ¶wü
fc Esjis::fc ¶wü
chr Esjis::chr ¶wü
glob Esjis::glob ¶wü
lstat Esjis::lstat ¶wü
opendir Esjis::opendir ¶wü
stat Esjis::stat ¶wü
unlink Esjis::unlink ¶wü
chdir Esjis::chdir ¶wü
do Esjis::do ¶wü
require Esjis::require ¶wü
--------------------------------------------
------------------------------------------------------------------------------------------------------------------------
O ã
------------------------------------------------------------------------------------------------------------------------
use Perl::Module; BEGIN { Esjis::require 'Perl/Module.pm'; Perl::Module->import() if Perl::Module->can('import'); }
use Perl::Module @list; BEGIN { Esjis::require 'Perl/Module.pm'; Perl::Module->import(@list) if Perl::Module->can('import'); }
use Perl::Module (); BEGIN { Esjis::require 'Perl/Module.pm'; }
no Perl::Module; BEGIN { Esjis::require 'Perl/Module.pm'; Perl::Module->unimport() if Perl::Module->can('unimport'); }
no Perl::Module @list; BEGIN { Esjis::require 'Perl/Module.pm'; Perl::Module->unimport(@list) if Perl::Module->can('unimport'); }
no Perl::Module (); BEGIN { Esjis::require 'Perl/Module.pm'; }
------------------------------------------------------------------------------------------------------------------------
=head1 t@CeXgZqÌGXP[v
±Ì\tgEFAÉæÁÄZqÌ '-' Í 'Esjis::' É«·íèÜ·B
MSWin32, MacOS ¨æÑ UNIXÌVXeÅpÂ\ÈZq
-------------------------------------------------------------------------------
O ã à¾
-------------------------------------------------------------------------------
-r Esjis::r t@CâfBNgª±Ì(Àø)[UܽÍO[v©çÇÝoµÂ\
-w Esjis::w t@CâfBNgª±Ì(Àø)[UܽÍO[v©ç«ÝÂ\
-e Esjis::e t@CâfBNg¼ª¶Ý·é
-x Esjis::x t@CâfBNgª±Ì(Àø)[UܽÍO[v©çÀsÂ\
-z Esjis::z t@Cª¶ÝµÄ¢Ä嫳ª0Å é(fBNgÉεÄÍíÉUÉÈé)
-f Esjis::f GgÍÊÌt@CÅ é
-d Esjis::d GgÍfBNgÅ é
-t -t ±Ìt@CnhÍTTYÅ é(isatty()VXeÖÌÊÅ»è·éB
±ÌeXgÍt@C¼ÉÍKpÅ«È¢)
-T Esjis::T ±Ìt@CÍueLXgvt@CÌæ¤Å é
-B Esjis::B ±Ìt@CÍuoCivt@CÌæ¤Å é
-M Esjis::M ÅãÉÏX³êÄ©çÌú
-A Esjis::A ÅãÉANZX³êÄ©çÌú
-C Esjis::C ÅãÉ im[h(inode) ªÏX³êÄ©çÌú
-s Esjis::s t@CâfBNgª¶ÝµÄ¢Ä嫳ª 0 ÅÈ¢
(oCgPÊÅ\íµ½t@CÌ嫳ªlÉÈé)
-------------------------------------------------------------------------------
MacOS ¨æÑ UNIXÌVXeÅpÂ\ÈZq
-------------------------------------------------------------------------------
O ã à¾
-------------------------------------------------------------------------------
-R Esjis::R t@CâfBNgª±ÌÀ[UܽÍO[v©çÇÝoµÂ\
-W Esjis::W t@CâfBNgª±ÌÀ[UܽÍO[v©ç«ÝÂ\
-X Esjis::X t@CâfBNgª±ÌÀ[UܽÍO[v©çÀsÂ\
-l Esjis::l GgÍV{bNNÅ é
-S Esjis::S GgÍ\PbgÅ é
-------------------------------------------------------------------------------
MSWin32, MacOS ÅÍpoÈ¢t@CeXgZq
-------------------------------------------------------------------------------
O ã à¾
-------------------------------------------------------------------------------
-o Esjis::o t@CâfBNgð±Ì(Àø)[UªLµÄ¢é
-O Esjis::O t@CâfBNgð±ÌÀ[UªLµÄ¢é
-p Esjis::p GgͼOt«pCv(fifo)Å é
-b Esjis::b GgÍubNÁêfoCXÅ é(á¦ÎA}EgÂ\ÈfBXN)
-c Esjis::c GgÍLN^ÁêfoCXÅ é(á¦ÎAI/OfoCX)
-u Esjis::u t@CâfBNgª setuid ³êÄ¢é
-g Esjis::g t@CâfBNgª setgid ³êÄ¢é
-k Esjis::k t@CâfBNgÌ sticky rbgªZbg³êÄ¢é
-------------------------------------------------------------------------------
perl5.00503 ðgpµÄ¢éêÅàt@CeXgZqÍuÏÝdËév±Æª
Å«Ü·B
if ( -w -r $file ) {
print "The file is both readable and writable!\n";
}
=head1 Ö¼ÌGXP[v
൶wüÌTu[`ðg¢½¢êÍȺÌæ¤ÉLq·éKvª èÜ·B
»ê¼êÌ@\É¢ÄÍu¶wüÌTu[`vðQƵľ³¢B
----------------------------------------------------
Ö¼ ¶wü à¾
----------------------------------------------------
ord Sjis::ord
reverse Sjis::reverse
getc Sjis::getc
length Sjis::length
substr Sjis::substr
index Sjis::index ȺÌLqàQÆ̱Æ
rindex Sjis::rindex ȺÌLqàQÆ̱Æ
----------------------------------------------------
index ÌÔ½¿
--------------------------------------------------------------
Ö¼ ®ì Ôl à¾
--------------------------------------------------------------
index ¶wü oCgPÊ JPerlƯ¶®ì
Sjis::index ¶wü ¶PÊ ¶wüÌ®ì
CORE::index oCgwü oCgPÊ oCgwüÌ®ì
--------------------------------------------------------------
rindex ÌÔ½¿
--------------------------------------------------------------
Ö¼ ®ì Ôl à¾
--------------------------------------------------------------
rindex ¶wü oCgPÊ JPerlƯ¶®ì
Sjis::rindex ¶wü ¶PÊ ¶wüÌ®ì
CORE::rindex oCgwü oCgPÊ oCgwüÌ®ì
--------------------------------------------------------------
=head1 ¶wüÌTu[`
=over 2
=item * Sjis::ord
$ord = Sjis::ord($string);
Sjis::ord($string) Í $string ÌæªÌ¶Ì ShiftJIS R[hlðԵܷ
(Unicode ÅÍ èܹñ)B$string ªÈª³ê½êÍ $_ ªÎÛÆÈèÜ·B
±ÌTu[`ÍíÉȵÌlðԵܷB
"use Sjis qw(ord);" ÉæÁÄXNvgÉLqµ½ ord Í Sjis::ord É«
·íéæ¤ÉÈèÜ·Bord ª Sjis::ord Ì®ìð·éÌÍ JPerl ÆñÝ·ÈÌ
ž¦IÉC|[gµ½êÌÝ«·íèÜ·B
=item * Sjis::reverse
@reverse = Sjis::reverse(@list);
$reverse = Sjis::reverse(@list);
Sjis::reverse(@list) ÍXgReLXgÅÍ @list ÌvfðtÉÀ×½
XglðԵܷB
XJ[ReLXgÅÍ @list Ì·×ÄÌvfðAµ½ãÅAShiftJIS Ì
¶PÊÅtɵ½àÌðԵܷB
"use Sjis qw(reverse);" ÉæÁÄXNvgÉLqµ½ reverse Í
Sjis::reverse É«·íéæ¤ÉÈèÜ·Breverse ª Sjis::reverse Ì®ìð
·éÌÍ JPerl ÆñÝ·ÈÌž¦IÉC|[gµ½êÌÝ«·íèÜ·B
൱ÌTu[`ðmçÈÆàâèÍ èܹñB±êÜÅÊèA±ÌTu
[`Í
$rev = join('', reverse(split(//, $jstring)));
ÅÀ»Å«Ü·B
Ql:
P.558 JPerl (ú{êÎPerl)
t^C ú{êÅÌÇÁ
ISBN 4-89052-384-7 PerlvO~O
=item * Sjis::getc
$getc = Sjis::getc(FILEHANDLE);
$getc = Sjis::getc($filehandle);
$getc = Sjis::getc;
FILEHANDLE Éѯçê½üÍt@C©çAÌ1¶ðÇñÅԵܷB
end-of-file(t@CÌIíè) ÉÈÁ½©A é¢Í I/O G[ª¶µ½êÉ
ÍAundef ðԵܷBFILEHANDLE ðȪ·éÆASTDIN ©çü͵ܷB
±ÌTu[`͵x¢àÌÌAL[{[h©ç1¶ðüÍ·éÛÉÖÅ·
-- L[{[hüÍðobt@OȵÉÝèÅ«êÎÅ·ªB±ÌTu[`ÍA
WI/OCuÉεÄAobt@OȵÅüÍ·éæ¤ÉvµÜ·BcOÈ
±ÆÉAWI/OCuÍAIy[eBOVXeÉεÄobt@Oȵ
ÅL[{[hüÍðs¤æ¤Év·é½ßÌAÚA«Ì éèiðpÓ·éÜÅÉÍA
W»³êĢܹñB»êÉÍAXmbð©¹ÄAIy[eBOVXeÉ
ÅLÌâèûð·éKvª èÜ·BUnix ÅÍAÌæ¤É·êΤܢŵå¤B
if ($BSD_STYLE) {
system "stty cbreak </dev/tty >/dev/tty 2>&1";
}
else {
system "stty", "-icanon", "eol", "\001";
}
$key = Sjis::getc;
if ($BSD_STYLE) {
system "stty -cbreak </dev/tty >/dev/tty 2>&1";
}
else {
system "stty", "icanon", "eol", "^@"; # ASCII NUL
}
print "\n";
±ÌR[hÍA[©çÉ^Cv³ê½¶ðÏ $key ÉüêÜ·B ȽÌVXe
Ì stty vOÉ cbreak IvVª éÈçAãÌR[h̤¿A$BSD_STYLE
ª^ÌêÌR[hðg¤ÆǢŵå¤B»¤ÅȯêÎA$BSD_STYLE ªUÌêÌ
R[hðg¦Îæ¢Åµå¤B
"use Sjis qw(getc);" ÉæÁÄXNvgÉLqµ½ getc Í Sjis::getc É«
·íéæ¤ÉÈèÜ·Bgetc ª Sjis::getc Ì®ìð·éÌÍ JPerl ÆñÝ·ÈÌ
ž¦IÉC|[gµ½êÌÝ«·íèÜ·B
=item * Sjis::length
$length = Sjis::length($string);
$length = Sjis::length();
Sjis::length($string) ÍXJ[l $string Ì·³ð ShiftJIS ̶(vO
}©ç©¦é¶)ÅԵܷB$string ðȪµ½êÍ $_ ̶ðÔµÜ
·B
zñâAzzñ(nbV
)Ì嫳ðmè½¢êÉÍASjis::length Íg¦Ü
¹ñBzñÌ嫳ðméÉÍ scalar @arrayAAzzñÉüÁÄ¢éL[/lÌy
AÌÂðméÉÍ scalar keys %hash ƵܷB
¶ÅÍÈoCgPÊÅÌ·³ð²×éÉÍA¢ÜÜÅÊè
$bytes = length($string);
Ìæ¤ÉµÜ·B
൱ÌTu[`ðmçÈÆàâèÍ èܹñB±êÜÅÊèA±ÌTu[
`Í
$len = split(//, $jstring);
ÅÀ»Å«Ü·B
Ql:
P.558 JPerl (ú{êÎPerl)
t^C ú{êÅÌÇÁ
ISBN 4-89052-384-7 PerlvO~O
=item * Sjis::substr
$substr = Sjis::substr($string,$offset,$length,$replacement);
$substr = Sjis::substr($string,$offset,$length);
$substr = Sjis::substr($string,$offset);
Sjis::substr ÍAShiftJIS ¶ñ $string Åwè³ê½¶ñ©çª¶ñðæè
oµÄԵܷBª¶ñÍA¶ñÌ檩ç¦Ä $offset ¶Ú©çnÜéA
$length ¶ªÅ·BÅ̶ªItZbg 0 ÆÈèÜ·B$offset ÉÌlðÝè
·éÆA$string ÌIíè©çÌItZbgÆÈèÜ·B
$length ðȪ·éÆA$string ÌÅãÜÅ·×ĪԳêÜ·B$length ªÌl¾
ÆA¶ñÌÅã©çwè³ê½¾¯¶ðæè«Ü·B»¤ÅȯêÎA$length
ÍA ȽªúÒ·éæ¤ÉAæèo·ª¶ñÌ·³ð\µÄ¢Ü·B
my $s = "The black cat climbed the green tree";
my $color = Sjis::substr $s, 4, 5; # black
my $middle = Sjis::substr $s, 4, -11; # black cat climbed the
my $end = Sjis::substr $s, 14; # climbed the green tree
my $tail = Sjis::substr $s, -4; # tree
my $z = Sjis::substr $s, -4, 2; # tr
o[W 5.14 È~Ì Perl Å êÎASjis::substr() ð¶ÓlƵÄgp·é±Æà
Â\Å·B»ÌêÉÍA$string ª©g¶ÓlÅȯêÎÈèܹñB$length æèZ¢
àÌðãüµ½Æ«ÉÍA$string ÍZÈèA$length æè·¢àÌðãüµ½Æ«ÉÍA
$string Í»êÉí¹ÄLÑé±ÆÉÈèÜ·B$string Ì·³ðêèÉÛ½ßÉÍA
sprintf ðgÁÄAãü·élÌ·³ð²®·é±ÆªAKvÉÈé©àµêܹñB
$offset Æ $length ƵĶñÌO¤ðÜÞæ¤Èª¶ñªwè³êéÆA¶ñ
Ìà¤Ìª¾¯ªÔ³êÜ·Bª¶ñª¶ñ̼[ÌO¤ÌêASjis::substr()
Í¢è`lðÔµAxªoͳêÜ·B¶ÓlƵÄgÁ½êA¶ñÌ®SÉO¤ð
ª¶ñƵÄwè·éÆáOª¶µÜ·BȺͫEðÌUé¢ð¦·áÅ·:
my $name = 'fred';
Sjis::substr($name, 4) = 'dy'; # $name is now 'freddy'
my $null = Sjis::substr $name, 6, 2; # returns "" (no warning)
my $oops = Sjis::substr $name, 7; # returns undef, with warning
Sjis::substr($name, 7) = 'gap'; # raises an exception
Sjis::substr() ð¶ÓlƵÄg¤ãíèÌû@ÍAu«·¦é¶ñð 4 ÔÚÌøÆ
µÄwè·é±ÆÅ·B±êÉæèA$string Ìêðu«·¦Au«·¦éOª½Å Á
½©ðÔ·AÆ¢¤±Æð(splice() Ưl) 1 ®ìÅs¦Ü·B
my $s = "The black cat climbed the green tree";
my $z = Sjis::substr $s, 14, 7, "jumped from"; # climbed
# $s is now "The black cat jumped from the green tree"
3 øÌ Sjis::substr() ÉæÁÄԳ꽶ÓlÍu@ÌeÛvÌæ¤ÉU¤±ÆÉ
ӵľ³¢; ±êªãü³êéÉA³Ì¶ñÌÇ̪ªÏX³ê½©ªv¢
o³êÜ·; á¦Î:
$x = '1234';
for (Sjis::substr($x,1,2)) {
$_ = 'a'; print $x,"\n"; # prints 1a4
$_ = 'xyz'; print $x,"\n"; # prints 1xyz4
$x = '56789';
$_ = 'pq'; print $x,"\n"; # prints 5pq9
}
ÌItZbgÌêA^[Qbg¶ñªC³³ê½Æ«É¶ñÌö©çÌÊu
ðo¦Ü·:
$x = '1234';
for (Sjis::substr($x, -3, 2)) {
$_ = 'a'; print $x,"\n"; # prints 1a4, as above
$x = 'abcdefg';
print $_,"\n"; # prints f
}
o[W 5.10 æèOÌ Perl ÅÍA¡ñ¶ÓlðgÁ½êÌÊÍ ¢è`ŵ½B
5.16 æèOÅÍAÌItZbgÌÊÍ¢è`Å·B
=item * Sjis::index
$index = Sjis::index($string,$substring,$offset);
$index = Sjis::index($string,$substring);
Sjis::index ÍAShiftJIS ¶ñ $string ÌÉÜÜêéAà¤1ÂÌ ShiftJIS ¶
ñ $substring ðTµÜ·B$string ÌÅA$substring ªÅÉo»·éÊuð
¶PÊŦÄԵܷB$offset ªwè³êÄ¢éêA$string Ì檩ç $offset
Â̶ðXLbvµ½Êu©çA$substring ðTµnßÜ·BÊuÍ 0 ðx[XƵ
ĦܷB$substring ª©Â©çȯêÎASjis::index Tu[`Íx[Xæè
1 ¾¯¬³¢l -1 ðԵܷBSjis::index ðgÁÄA¶ñSÌð²×éÉÍAÌ
æ¤ÉµÜ·B
$pos = -1;
while (($pos = Sjis::index($string, $lookfor, $pos)) > -1) {
print "Found at $pos\n";
$pos++;
}
=item * Sjis::rindex
$rindex = Sjis::rindex($string,$substring,$offset);
$rindex = Sjis::rindex($string,$substring);
Sjis::rindex Í Sjis::index ÆĢܷªAShiftJIS ¶ñ $string ÌÅA
ª¶ñ $substring ªÅãÉo»·éÊuð¶PÊŦÄԵܷ(ÂÜè
reverse Sjis::index Å·)B$substring ª©Â©çȯêÎA-1 ðԵܷB
$offset ÉæÁÄAlƵÄÔ·±Æª³êéAÅàEæèÌÊuðwè·é±Æ
ªÅ«Ü·BSjis::rindex ðgÁÄA¶ñSÌðö©çæªÉü©ÁIJ×éÉ
ÍAÌæ¤ÉµÜ·B
$pos = Sjis::length($string);
while (($pos = Sjis::rindex($string, $lookfor, $pos)) >= 0) {
print "Found at $pos\n";
$pos--;
}
=item * t@C¼OrO
@glob = glob($expr);
$glob = glob($expr);
@glob = glob;
$glob = glob;
@glob = <*>;
$glob = <*>;
±ÌZqÍ Esjis::glob ÉæÁÄÀ³êĢܷBEsjis::glob ÌÚ×ÍȺÌ
ÊèÅ·B
@glob = Esjis::glob($string);
@glob = Esjis::glob_;
±ÌTu[`ÍA$stringÌlÉεÄADOSVFƯ¶æ¤Èt@C¼WJ
ðsÁľçê½ÊðԵܷB$string ªÈª³ê½Æ«ÍãíèÉ $_ ªgíê
Ü·B±ÌTu[`Í Sjis\tgEFAàÅ <*> ¨æÑ glob ZqðÀµ
Ä¢éTu[`Å·BMSWin32«ÉÄ $string ª chr(0x5c) ÅI¹µÄ¢éê
Åà®ìµÜ·B
g¢â··é½ßÉ Esjis::glob ÍAUNIXÅÍÈADOSÌWJðs¤æ¤ÉÈÁ
ĢܷBAX^XN("*")ÍACÓ̶ðCÓÂ(0ÂÅàæ¢)À×½àÌÉ}b`
µÜ·BNGX`L("?")ÍACÓ̶1ÂܽÍ0ÂÉ}b`µÜ·BeB
f("~")Íz[fBNg¼ÉWJ³êÜ·Bá¦ÎA"~/.*rc" Í»ÝÌ[UÌ
"rc" t@C·×ÄÉ}b`·éµA"~jane/Mail/*" ÍJaneÌ[t@C·×Ä
É}b`µÜ·B
ASCIIÌpÌå¶Æ¬¶Íæʳê¸A¯¶àÌƵĵíêÜ·BobNXb
V
ÆXbV
ÍÇ¿çàfBNgZp[^ƵĵíêÜ·B_uNH[g
¶ñÌÅobNXbV
1Â(\)ð\í·½ßÉÍ2ÂÌ \A(ÂÜè \\ )ðLq·
éKvª èÜ·B
ó¶ðÜÞÂ\«Ì ét@C¼ðOuµ½¢êÉÍA$stringð_u
NH[gÅÍÞKvª èÜ·BȺÈçAEsjis::glob ÍAó¶ðÁʵ¢µÄ¡
Ìp^[ÌæØè(á¦Î<*.c *.h>)Æðߵĵܤ©çÅ·B
á¦ÎA"e" ÌãëÉó¶A»ÌãëÉ "f" ª±t@C¼ÌOrOðs¤
ÉÍȺÌæ¤ÉLqµÜ·B
@spacies = <"*e f*">;
@spacies = Esjis::glob('"*e f*"');
@spacies = Esjis::glob(q("*e f*"));
Ïðp·éêÍȺÌæ¤ÉµÜ·B
@spacies = Esjis::glob("'*${var}e f*'");
@spacies = Esjis::glob(qq("*${var}e f*"));
XNvgð¡ãàDOSÌOSÅÀs·éÌÅ êÎA
# ÎpXÅæ¾·éê
@relpath_file = split(/\n/,`dir /b wildcard\\here*.txt 2>NUL`);
# âÎpXÅæ¾·éê
@abspath_file = split(/\n/,`dir /s /b wildcard\\here*.txt 2>NUL`);
ÆLqµÄàæ¢Åµå¤B
=back
=head1 oCgwüÌÖ
=over 2
=item * CORE::chop
$byte = CORE::chop($string);
$byte = CORE::chop(@list);
$byte = CORE::chop;
¶ñÏ é¢ÍoCgñÏÌÅãÌoCgðØèƵA»ÌoCgðlƵÄ
ԵܷBCORE::chop ZqÍAåÉüÍR[hÌö©çüs¶ðæèÌÉ
p¢çêAu·Zqðg¤(s/\n$//)æèàø¦IÅ·Bàµâè½¢±Æª»ê¾¯
ÈçÎAchomp ðg¤Ù¤ªæèÀSÅ·BȺÈçACORE::chop ÍöÉ éoCg
ð³ðÅæèÌÉεÄAchomp ÍæèàÌðIñÅæè©çÅ·B
eð CORE::chop ·é±ÆÍūܹñ --- CORE::chop Å«éÌÍϾ¯Å
·B
øƵÄÏÌXg @list ð^¦éÆAXgÌe¶ñÌÅãÌoCgªØè
ƳêÜ·:
@lines = `cat myfile`;
CORE::chop @lines;
ãü®ðÜßA¶ÓlÈçÎÇñÈàÌÅà CORE::chop ·é±ÆªÅ«Ü·:
CORE::chop($cwd = `pwd`);
CORE::chop($answer = <STDIN>);
ãÌ2sÍAÌáÆÍáÁ½®ìðµÜ·:
$answer = CORE::chop($tmp = <STDIN>); # ëè
±ÌR[hÅÍACORE::chop ÍA($tmpÉüÁÄ¢é)c³ê½¶ñÅÍÈAØè
Ƶ½oCgðÔ·ÌÅA$answer ÉÍüs¶ªZbg³êĵܢܷBÓ}µ
½Êð¾é½ßÌû@Ì1ÂÍAsubstr ðg¤±ÆÅ·:
$answer = substr <STDIN>, 0, -1;
µ©µAÌæ¤É̪ÊÅ·:
CORE::chop($answer = <STDIN>);
ÅàêÊIÈP[XÅÍAsubstr ðgÁÄACORE::chop ð«·¦é±ÆªÅ«Ü·:
$last_byte = CORE::chop($var);
$last_byte = substr($var, -1, 1, ""); # ¯¶±Æ
±ê窿Šé±ÆððµÄµÜ¦ÎAÜÆßÄ CORE::chop ðs¤±ÆªÅ«
Ü·B2ÂÈãÌoCgðÜÆßÄØèÆ·ÉÍAsubstr ð¶ÓlƵÄg¢A»êÉ
ó¶ñðãüµÜ·BÌR[hÍ $caravan ÌÅãÌ5oCgðæè«Ü·:
substr($caravan, -5) = "";
±±ÅÍ substr ÉÌlð^¦é±ÆÉæÁÄA(檩çÅÍÈ)ö©çÌI
tZbgðwèµÄ¢Ü·Bíµ½oCgðÛ¶µ½¯êÎA4øÌ substr ðgÁ
Ä5oCgð CORE::chop µÜ·:
$tail = substr($caravan, -5, 5, "");
øðȪ·éÆAÏ $_ ªÎÛÆÈèÜ·B
=item * CORE::ord
$ord = CORE::ord($expr);
CORE::ord($expr) Í "use Sjis qw(ord);" ÌLqÌL³ÉÖíç¸AíÉ $expr
ÌæªÌoCglðԵܷB$expr ªÈª³ê½êÍ $_ ªÎÛÆÈèÜ·B
±ÌÖÍíÉȵÌlðԵܷB
t«ÌlªKvÅ êÎAunpack('c',$expr) ðg¢Ü·BܽSÄÌoCgl
ðXgƵÄKvÅ êÎ unpack('C*',$expr) ðãíèÉg¢Ü·B
=item * CORE::reverse
@reverse = CORE::reverse(@list);
$reverse = CORE::reverse(@list);
CORE::reverse(@list) ÍXgReLXgÅÍ @list ÌvfðtÉÀ×½
XglðԵܷB
XJ[ReLXgÅÍ "use Sjis qw(ord);" ÌLqÌL³ÉÖíç¸A @list
Ì·×ÄÌvfðAµ½ãÅAoCgPÊÅtɵ½àÌðԵܷB
=item * CORE::getc
$getc = CORE::getc(FILEHANDLE);
$getc = CORE::getc($filehandle);
$getc = CORE::getc;
FILEHANDLE Éѯçê½üÍt@C©çAÌ1oCgðÇñÅԵܷB
end-of-file(t@CÌIíè) ÉÈÁ½©A é¢Í I/O G[ª¶µ½êÉ
ÍAundef ðԵܷBFILEHANDLE ðȪ·éÆASTDIN ©çü͵ܷB
±ÌÖ͵x¢àÌÌAL[{[h©ç1oCgðüÍ·éÛÉÖÅ· -- L[
{[hüÍðobt@OȵÉÝèÅ«êÎÅ·ªB±ÌÖÍAWI/OCu
ÉεÄAobt@OȵÅüÍ·éæ¤ÉvµÜ·BcOȱÆÉAW
I/OCuÍAIy[eBOVXeÉεÄobt@OȵÅL[{[h
üÍðs¤æ¤Év·é½ßÌAÚA«Ì éèiðpÓ·éÜÅÉÍAW»³ê
ĢܹñB»êÉÍAXmbð©¹ÄAIy[eBOVXeÉÅLÌâè
ûð·éKvª èÜ·BUnix ÅÍAÌæ¤É·êΤܢŵå¤B
if ($BSD_STYLE) {
system "stty cbreak </dev/tty >/dev/tty 2>&1";
}
else {
system "stty", "-icanon", "eol", "\001";
}
$key = CORE::getc;
if ($BSD_STYLE) {
system "stty -cbreak </dev/tty >/dev/tty 2>&1";
}
else {
system "stty", "icanon", "eol", "^@"; # ASCII NUL
}
print "\n";
±ÌR[hÍA[©çÉ^Cv³ê½1oCgðÏ $key ÉüêÜ·B ȽÌ
VXeÌ stty vOÉ cbreak IvVª éÈçAãÌR[h̤¿A
$BSD_STYLE ª^ÌêÌR[hðg¤ÆǢŵå¤B»¤ÅȯêÎA$BSD_STYLE
ªUÌêÌR[hðg¦Îæ¢Åµå¤B
=item * CORE::index
$index = CORE::index($string,$substring,$offset);
$index = CORE::index($string,$substring);
CORE::index ÍAoCgñ $string ÌÉÜÜêéAà¤1ÂÌoCgñ $substring
ðTµÜ·B$string ÌÅA$substring ªÅÉo»·éÊuðoCgPÊŦÄ
ԵܷB$offset ªwè³êÄ¢éêA$string Ì檩ç $offset oCgªXLb
vµ½Êu©çA$substring ðTµnßÜ·BÊuÍ 0 ðx[XɵĦܷB
$substring ª©Â©çȯêÎACORE::index ÖÍx[Xæè 1 ¾¯¬³¢l -1
ðԵܷBCORE::index ðgÁÄAoCgñSÌð²×éÉÍAÌæ¤ÉµÜ·B
$pos = -1;
while (($pos = CORE::index($string, $lookfor, $pos)) > -1) {
print "Found at $pos\n";
$pos++;
}
=item * CORE::rindex
$rindex = CORE::rindex($string,$substring,$offset);
$rindex = CORE::rindex($string,$substring);
CORE::rindex Í CORE::index ÆĢܷªAoCgñ $string ÌÅAªoCg
ñ $substring ªÅãÉo»·éÊuðoCgPÊŦÄԵܷ(ÂÜè
reverse CORE::index Å·)B$substring ª©Â©çȯêÎA-1 ðԵܷB
$offset ÉæÁÄAlƵÄÔ·±Æª³êéAÅàEæèÌÊuðwè·é±Æ
ªÅ«Ü·BCORE::rindex ðgÁÄAoCgñSÌðö©çæªÉü©ÁIJ×é
ÉÍAÌæ¤ÉµÜ·B
$pos = CORE::length($string);
while (($pos = CORE::rindex($string, $lookfor, $pos)) >= 0) {
print "Found at $pos\n";
$pos--;
}
=back
=head1 bytes::* Tu[`ÌAGXP[v
±Ì\tgEFAÉæÁÄ bytes::* Tu[`ÌæªÌ 'bytes::' ªæè©êÜ·B
-----------------------------------------
O ã ®ì
-----------------------------------------
bytes::chr chr oCgwü
bytes::index index oCgwü
bytes::length length oCgwü
bytes::ord ord oCgwü
bytes::rindex rindex oCgwü
bytes::substr substr oCgwü
-----------------------------------------
=head1 WW
[ÌàeÌGXP[v
WW
[Ìt@Cð /Perl/site/lib/Sjis ÉRs[µÄ 'use utf8;' ð
'use Sjis;' É«·¦Ü·BKvɶĻ̷̼¦ðsÁľ³¢B
=head1 ³·évO}¨æÑW
[
-----------------------------------------------------------
O ã
-----------------------------------------------------------
use strict; use strict; no strict qw(refs);
use 5.12.0; use 5.12.0; no strict qw(refs);
require utf8; # require utf8;
require bytes; # require bytes;
require charnames; # require charnames;
require I18N::Japanese; # require I18N::Japanese;
require I18N::Collate; # require I18N::Collate;
require I18N::JExt; # require I18N::JExt;
require File::DosGlob; # require File::DosGlob;
require Wild; # require Wild;
require Wildcard; # require Wildcard;
require Japanese; # require Japanese;
use utf8; # use utf8;
use bytes; # use bytes;
use charnames; # use charnames;
use I18N::Japanese; # use I18N::Japanese;
use I18N::Collate; # use I18N::Collate;
use I18N::JExt; # use I18N::JExt;
use File::DosGlob; # use File::DosGlob;
use Wild; # use Wild;
use Wildcard; # use Wildcard;
use Japanese; # use Japanese;
no utf8; # no utf8;
no bytes; # no bytes;
no charnames; # no charnames;
no I18N::Japanese; # no I18N::Japanese;
no I18N::Collate; # no I18N::Collate;
no I18N::JExt; # no I18N::JExt;
no File::DosGlob; # no File::DosGlob;
no Wild; # no Wild;
no Wildcard; # no Wildcard;
no Japanese; # no Japanese;
-----------------------------------------------------------
utf8 vO}Abytes vO}ÍRgAEg³êÜ·B¯t@CÅñ³êÄ
¢éTu[`ÌãíèÆµÄ Esjis.pm ª_~[Tu[`ðñµÜ·B
=over 2
=item * _~[ÌTu[` utf8::upgrade
$num_octets = utf8::upgrade($string);
$string ÌINebgðԵܷB
=item * _~[ÌTu[` utf8::downgrade
$success = utf8::downgrade($string[, FAIL_OK]);
±ÌTu[`ÍíÉ^ÌlðԵܷB
=item * _~[ÌTu[` utf8::encode
utf8::encode($string);
±ÌTu[`ͽàԵܹñB
=item * _~[ÌTu[` utf8::decode
$success = utf8::decode($string);
±ÌTu[`ÍíÉ^ÌlðԵܷB
=item * _~[ÌTu[` utf8::is_utf8
$flag = utf8::is_utf8(STRING);
±ÌTu[`ÍíÉUÌlðԵܷB
=item * _~[ÌTu[` utf8::valid
$flag = utf8::valid(STRING);
±ÌTu[`ÍíÉ^ÌlðԵܷB
=item * _~[ÌTu[` bytes::chr
oCgwüÌTu[` chr ƵÄÀ³êĢܷB
=item * _~[ÌTu[` bytes::index
oCgwüÌTu[` index ƵÄÀ³êĢܷB
=item * _~[ÌTu[` bytes::length
oCgwüÌTu[` length ƵÄÀ³êĢܷB
=item * _~[ÌTu[` bytes::ord
oCgwüÌTu[` ord ƵÄÀ³êĢܷB
=item * _~[ÌTu[` bytes::rindex
oCgwüÌTu[` rindex ƵÄÀ³êĢܷB
=item * _~[ÌTu[` bytes::substr
oCgwüÌTu[` substr ƵÄÀ³êĢܷB
=back
=head1 Sjis \tgEFAÌ}`oCgAJ[O
=over 2
=item * oCgƶ(CJKVúØzîñæè)
VtgJISÌæ¤È}`oCg¶ð·éÆ«Éu¶Ìívu¶Ì}üvu¶Ì
õvðKØÉs¤½ßÉÍA1¶ª1oCgÅ\³êéÆ¢¤ÅèÏOðjçȯêÎÈè
ܹñB
±Ì±ÆÉ¢Ä
CJKVúØzîñ(ISBN 4-87311-108-0)
http://www.oreilly.co.jp/books/4873111080/
P.439 9.6 oCgƶ
9.6.1 ¶Ìí
9.6.2 ¶Ì}ü
9.6.3 ¶Ìõ
ÉÚµ©êĢܷB
ܽ±êð Perl vO~OÅð·é½ßÌû@ª¯Ì
t^W PerlÌvOá
W.8 CJKV»Ìev[g
W.8.5 VtgJIS »
W.9 }`oCgAJ[O
W.10 }`oCg
ÉfÚ³êĢܷB
=item * OiÉæéV½ÈÛè
ãLÌ}`oCgAJ[OÌev[gðp·éÆAVtgJIS̶ñð³K\»
ÅÅ«éæ¤ÉÈèÜ·ªA±ÌOiÉæÁÄV½ÈÇÉË«½èÜ·B
wcs_abe³ñÌñ
Perl t@CêCÇÝã̳K\»É¢Ä
http://okwave.jp/qa/q6674287.html
PerlÅȺÌÊèAhtmlt@CðSÄÇÝñ¾ãɳK\»ðĽ¢ÌÅ·ªA¤Ü
¢«Ü¹ñB°kÅ·ªA´öð²¶mÌû¢çÁµá¢Üµ½ç³¦Ä¸¯Ü¹ñŵå¤
©BܽA¼ÉÇ¢ðû@ª èܵ½ç³¦Ä¸¯éÆK¢Å·B
¦PC«Íwindows7, perl5.12Å·BîñÉs«ª²´¢Üµ½ç²wEº³¢B
-----
#--test.html(¶¤ÌÍs)
000001 <dl>
000002 <dt>aaa</dt>
000003 <dd>12345</dd>
000004 </dl>
iªj
120001 <dl>
120002 <dt>bbb</dt>
120003 <dd>6789</dd>
120004 </dl>
#--test.pl
open IN , "test.html";
local $/ = undef;
$data = <IN>;
close IN;
$data =~ s|<dt>bbb</dt>|<dt>ccc</dt>|;
print "$data\n";
-----
t@CÌnßÌû¾Æ½éÌÉAã¼ÅͽèܹñB
³K\»ÌÎÛƵÄå«·¬éñŵ天EEEB
$data =~ s|<dt>aaa</dt>|<dt>ccc</dt>|;
ÍA½èÜ·ª
$data =~ s|<dt>bbb</dt>|<dt>ccc</dt>|;
¾Æ½èܹñB
Ǥ¼æ뵨袢½µÜ·B
â«
ãLÌ¿âÅÍAÖAÍ¢Æv¢ ¦ÄLڵȩÁ½ñÅ·ªA±Ìhtmlt@CÍ
SjiseLXgÅA»êðSjis.pmðgÁÄðs¨¤ÆµÄ¢Ü·B
±ÌÇóðÄ»·éŬÌR[hðÆ
# XNvg test2.pl
for my $n (32767, 32768) {
$_ = ('A' x $n) . 'B';
if (/(\G(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])*?)B/) {
print "ok - ('A' x $n).'B' =~ /B/\n";
}
else {
print "not ok - ('A' x $n).'B' =~ /B/\n";
}
}
__END__
Ìæ¤ÉÈèAÀsÊÍ
ok - ('A' x 32767).'B' =~ /B/
not ok - ('A' x 32768).'B' =~ /B/
ÆÈèÜ·B'A' ª 32,767±¢½ãÌ 'B' ÍõµÄ©Â©éÌÉA32,768±¢½ãÌ
'B' ÍõµÄà©Â©çÈ¢ÌÅ·B
=item * Perl̳K\»ÌÊwèqÌÀE
±Ì´öÍ perl C^v^É èÜ·B
Êwèq
http://perldoc.jp/docs/perl/5.14.1/perlre.pod
ȺÌWIÈÊwèqðg¦Ü·:
* Match 0 or more times
+ Match 1 or more times
? Match 1 or 0 times
{n} Match exactly n times
{n,} Match at least n times
{n,m} Match at least n but not more than m times
(Oª) "*" ÊwèqÍ {0,} ÆA"+" ÊwèqÍ {1,} ÆA "?" ÊwèqÍ {0,1} Æ¿
Å·B n yÑ m Í perl ðrhµ½Æ«Éè`µ½ùȩ̀Àæ謳Èñ®ñÉ
§À³êÜ·B ±êÍåïÌvbgtH[ÅÍ 32766 ñÉÈÁĢܷB ÀÛ̧À
ÍÌæ¤ÈR[hðÀs·éƶ¬³êéG[bZ[WÅ ©é±ÆªÅ«Ü·:
$_ **= $_ , / {$_} / for 2 .. 42;
=item * Çðæèz¦éÉÍ
±ÌÀEðñð·éû@ƵÄAåAms³ñªlĵ½ÈºÌû@ª èÜ·B
2002-01-17: ·¢¶ñÉηé³K\»õ
http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm#long
# êñ¾¯}b`
my $Apad = '(?:(?:\A|[\x00-\x80\xA0-\xDF])(?:[\x81-\x9F\xE0-\xFC]{2})*?)';
my $str1 = (' ' x 100000) . 'ACABC';
$str1 =~ /$Apad([A-Z]+)/o;
print "$1\n"; # "ABC" Æ\¦³êéB
# O[o}b`
my $Gpad = '(?:(?:\G|[\x00-\x80\xA0-\xDF])(?:[\x81-\x9F\xE0-\xFC]{2})*?)';
my $str2 = ' ' x 100000 . 'ACABC'. '¨' x 100000 . 'XYZ';
my @array = $str2 =~ /$Gpad([A-Z]+)/go;
print "@array\n"; # "ABC XYZ" Æ\¦³êéB
\A Æ \G ªg¢ª¯çêÄ¢éÌÅ·ªA\G ÍÅÉgíêéÆ«Í \A Ư¶æ¤É@\
·éÌÅAÀÛÉÍ \G Ìû@Ðƾ¯Åæ¢Åµå¤B
³K\»ÌNH[gÌZq
http://perldoc.jp/docs/perl/5.16.1/perlop.pod#Regexp32Quote-Like32Operators
\G assertion (\G AT[g)
(Oª)ÈOÉ /g }b`ðKpµÄ¢È¢^[Qbg¶ñÉ뵀 /g ȵŠ\G ðg¤ÆA
¶ñÌæªÉ}b`·é \A AT[gðg¤ÌÆ ¯¶±ÆÉÈèÜ·B(ãª)
=item * ƵcÁÄ¢éâèÖÌÎ
ãLÌy[WÉÍ
êoCg¶©AñoCg¶Ì¤¿æñoCgª [\x40-\x7E\x80\xA0-\xDF] ÅIíéàÌ
ªAÈÆàKÈÔuÅiãÀÉBµÈ¢¤¿Éjo»·êÎAG[ÉÈç¸É·
é±ÆªÅ«Ü·Bim¦IÈâèÅ·ÌÅA®SÅÍ èܹñBj
Æ èASoCgª US-ASCII Å\¬³êÄ¢éf[^Ìêͤܢ«Ü¹ñB
»Ìæ¤ÈêÍAJ[Oð
qr{\G.*?}s
É·é±ÆÅεܷB
=item * ÜÆßéÆ
ÈãÌSÄðl¶µÄAÄÑ}`oCgAJ[Oðl¦éÆȺÌæ¤ÉÈèÜ·B
qr{\G(?(?=.{0,32766}\z)(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])*?|(?(?=[\x00-\x80\xA0-\xDF\xFD-\xFF]+\z).*?|(?:.*?[\x00-\x80\xA0-\xDF\xFD-\xFF](?:[^\x00-\x80\xA0-\xDF\xFD-\xFF]{2})*?)))}oxms
ðà
qr{\G # \G AT[gÆ \A AT[gðËé
(?(?=.{0,32766}\z) # ÎÛ¶ñª 32,766 INebgȺŠêÎ
(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])*? # ±êª}`oCgAJ[OÉgíêé
| # 32,767 INebgÈãÅAȨ©Â
(?(?=[\x00-\x80\xA0-\xDF\xFD-\xFF]+\z) # SoCgªVOoCgR[hZbgÅ\¬³êÄ¢éÈçÎ
.*? # ±êªAJ[OÉgíêé
| # »êÈOÌêÍ
(?:.*?[\x00-\x80\xA0-\xDF\xFD-\xFF](?:[^\x00-\x80\xA0-\xDF\xFD-\xFF]{2})*?) # ±êª}`oCgAJ[OÉgíêé
))}oxms
MSWin32 Â«Ì ActivePerl Ìo[W 5.6 È~(Perl5.10.0àÜÝÜ·)A é¢Í»Ì¼
Ì Perl Ìo[W 5.10.1 È~ÌêɱÌ}`oCgAJ[OªgíêÜ·B
»êÈOÌêÍA±êÜÅǨè
qr{\G(?:[\x81-\x9F\xE0-\xFC][\x00-\xFF]|[^\x81-\x9F\xE0-\xFC])*?}oxms
ªgíêÜ·B
=back
=head1 «Ï
±Ì\tgEFAÍr¼§äÉ flock ÖðgpµÜ·Bt@CªÇæèÂ\ÉÈéÜÅ
é¢ÍÝÂ\ÉÈéÜÅvOÌÀsÍubN³êÜ·B
±êðÂ«Ï SJIS_NONBLOCK ðè`·é±ÆÅubN³¹È¢æ¤É·é±ÆªÅ«Ü
·B
á:
SET SJIS_NONBLOCK=1
(l '1' ÍÓ¡ð½È¢ÌŽÅà\¢Ü¹ñ)
=head1 MacJPerl Ì@\
}Æ Web ãÌîñðQlÉµÄ MacOS ÉεÄÝܵ½BÀ@ªÈ¢½ßÉeXgª
ūĢܹñB®ìñAoOñ¸¯éÆÆÄà 誽¢Å·B
ÀsÉÍȺÌ\tgEFAªKvÅ·B
1. MacPerl W
[
2. Mac::Files W
[
3. ToolServer
4. MPW(Macintosh Programmer's Workshop)
=head1 oOƧÀÆÝ·«
±Ì\tgEFAÍAÌ\ÍðsµÄAeXgµÄƵܵ½B»¤Å ÁÄàA½
̳K\»ðÜÞ\tgEFAÍA éöxÌoOð¤±ÆðÜʪêé±ÆªÅ«Ü¹ñB
æÁÄAൠȽÌXNvgÅÍÈÄASjis\tgEFAÌoOð©Â¯½ÌÈçA
ŬÀÌeXgR[hÉØèlß½ãÅAìÒÜÅñµÄ¸¯éÆ©èÜ·B
é¢ÍàÁÆLpÈc[É·é½ßÌæ¢ACfBAª Á½ÈçAFƤLµÄ¸¯é
Æ èª½¢Å·B
=over 2
=item * format
IWiÌ Perl Æ@\ª¯¶Å·(ShiftJIS ÉεĢܹñ)B
=item * ³K\»ÌNCX^
³K\»ÌNCX^ (?s) Æ (?i) ÍÊAÀ³êȢŵå¤B
NCX^ (?s) Í /s CüqÆ .(hbg) Æ \N ÅãpÅ«Ü·B
NCX^ (?i) Í \F ` \E ÅHvµÄLqµÈ¢Æ¢¯Ü¹ñB
=item * chdir
perl5.005 Å êÎíÉ chdir() ð³íÉÀsÅ«Ü·B
DOSÌVXe($^O Ìlª MSWin32, NetWare, symbian, dos Ì¢¸ê©Ì
ê)ÍAȺ̧Àª èÜ·B
perl5.006 Ü½Í perl5.00800 ÌêŶR[h(0x5C)ÅIíéfBNg
ðwèµÄÀs·éÉÍ jacode.pl CuªKvÅ·B
perl5.008001È~, perl5.010, perl5.012, perl5.014, perl5.016, perl5.018,
perl5.020 ÉĶR[h(0x5C)ÅIíéfBNgðwèµÄÀs·éÆ«A
COMMAND.COM é¢Í cmd.exe ÉæÁÄ 8dot3name `®ÌZ¢¼Oðæ¾Å«½
êÍ chdir() ª¬÷µÜ·B½¾µAchdir() ãÌJgfBNgÌ
ÅIÌTufBNgÍ 8dot3name `®ÌZ¢¼OÉÈèÜ·B
QlN
Bug #81839
chdir does not work with chr(0x5C) at end of path
http://bugs.activestate.com/show_bug.cgi?id=81839
=item * ¶ÓlƵÄÌ Sjis::substr
o[W 5.14 ¢Ì Perl ÌêASjis::substr Í CORE::substr ÆÍÙÈèA
¶ÓlƵĵ¤±ÆªÅ«Ü¹ñB¶ñÌêªðÏXµ½¢êÍASjis::substr
Ì4ÔÚÌøƵÄu·¦ã̶ñðwèµÜ·B
Sjis::substr($string, 13, 4, "JPerl");
=item * ÁêÏ $` Æ $& ðg¤Æ«Í /( ³K\»SÌðLv` )/ ·éKvª èÜ·
ȺÈçÎAȺÌæ¤ÉÏ·³êA$1 ðp·é½ßÅ·B
-------------------------------------------------------------------------------------------
O ã Às³êéàe
-------------------------------------------------------------------------------------------
$` Esjis::PREMATCH() CORE::substr($&,0,CORE::length($&)-CORE::length($1))
${`} Esjis::PREMATCH() CORE::substr($&,0,CORE::length($&)-CORE::length($1))
$PREMATCH Esjis::PREMATCH() CORE::substr($&,0,CORE::length($&)-CORE::length($1))
${^PREMATCH} Esjis::PREMATCH() CORE::substr($&,0,CORE::length($&)-CORE::length($1))
$& Esjis::MATCH() $1
${&} Esjis::MATCH() $1
$MATCH Esjis::MATCH() $1
${^MATCH} Esjis::MATCH() $1
$' $' $'
${'} ${'} $'
$POSTMATCH Esjis::POSTMATCH() $'
${^POSTMATCH} Esjis::POSTMATCH() $'
-------------------------------------------------------------------------------------------
=item * ³K\»ðKp·é¶ñÌ·³ÌãÀ
OqÌƨèAGXP[vã̳K\»ÉÍ}`oCgAJ[O̽
ßÌLq ${Esjis::anchor} ªÇÁ³êÜ·ªA»ÌÉÜÜêé \G ̧ñðó
¯Ü·BMSWin32ÅÌActivePerl5.6È~(5.10.0àÜÝÜ·)A é¢Í¼ÌPerlÌ
êÍ5.10.1È~ÅȯêÎA¶ñÌ32,767oCgð´¦éÊuÅ}b`³¹é
±ÆªÅ«Ü¹ñB
QlN
In 5.10.0, the * quantifier in patterns was sometimes treated as {0,32767}
http://perldoc.perl.org/perl5101delta.html
[perl #116379] \G can't treat over 32767 octet
http://www.nntp.perl.org/group/perl.perl5.porters/2013/01/msg197320.html
perlre - Perl regular expressions
http://perldoc.perl.org/perlre.html
perlre length limit
http://stackoverflow.com/questions/4592467/perlre-length-limit
=item * WJ·éÆóÉÈé³K\»ÌÏ
óÌe¶ñÆÍÙÈèA³K\»ÉWJ³ê½ÏÌlªó¶ñÅ Á
ÄàA¼Oɬ÷µ½³K\»ÍgíêܹñB
=item * ??, m?? à̧À
?? Ü½Í m?? ÌàÅ}`oCg¶É뵀 {n,m} {n,} {n} * + ÈÇÌÊw
èqðt¯½¢êÍA»Ì¶ð ( ) ÅÍñÅLq·éKvª èÜ·B»ÌÊA
$1,$2,$3,... ͸êĵܤ½ßA»ÌLqðC³·éKvª èÜ·B
Ȩ ?? Ü½Í m?? Íf~^ª ? ÈÌÅA(?: ) âÊwèqÌ ? {n,m}? {n,}?
{n}? ÍLq·é±ÆªÅ«Ü¹ñB
=item * ãÇݾ¾
ãÇݾ¾(á¦Î (?<=[A-Z]))ª¼OÌñoCg¶ÌæñoCgÉëÁÄ}b`
·é±ÆÉÍγêĢܹñB
á¦ÎA'ACE' =~ /(?<=[A-Z])([ACE])/ ðÀs·éÆ}b`µÄ $1 Í 'C'
ÉÈèÜ·ªA±êͳµ èܹñB
=item * ³K\»ÌCüq /a /d /l /u
±Ì\tgEFAÌRZvgÍAÐÆÂÌXNvgÌe¶ñâ³K\»
ÌeªÉ¡Ì»û®ðpµÈ¢æ¤É·é±ÆÅ·B]ÁÄCüq
/a /d /l /u ðT|[gµÜ¹ñB
\d ÍÌà¡à [0-9] ðÓ¡µÜ·B
=item * ¼Ot«¶
á¦ÎA\N{GREEK SMALL LETTER EPSILON}A\N{greek:epsilon}A\N{epsilon} Ìæ¤
ȼOt«¶ÍpūܹñB
=item * ³K\»ÌUnicode®«
³K\»ÌUnicode®«Íp·é±ÆªÅ«Ü¹ñBPerl5.18ÅÇÁ³ê½ (?[])
\¶àpūܹñB¢ÜÌƱë»êçðT|[g·é\èÍ èܹñB
=item * ³³êé ${^WIN32_SLOPPY_STAT} Ìl
Microsoft Windows ãÅ chr(0x5c) ÅIíépXðwèµÄt@CeXg(Zq)A
é¢Í lstat()Astat() ðÀs·éÆA${^WIN32_SLOPPY_STAT} É^ÌlªÝè³ê
Ä¢éêÅà»Ìt@CðI[vµÄ²×Ü·B
=item * eval "string"
eval Ì "string" ðGXP[v·é@\ÍܾÀ³êĢܹñB¡ãÌo[W
ÅT|[g³êéŵå¤B
=item * ¶ñ¨æѳK\»Ìf~^
qq//, q//, qw//, qx//, qr//, m//, s///, tr///, y/// Ìf~^ƵÄChL
N^ðgp·é±ÆÍūܹñB
=back
=head1 ìÒ
±ÌvWFNgÍ ît ina@cpan.org ÉæÁÄnÜèܵ½B
=head1 ì
±Ì\tgEFAÍt[\tgEFAÅ·B È½Í Perl Ư¶CZX
̳ÅÄzzyÑÏXðs¤±ÆªoÜ·BÚµÍ perlartistic ðQƵÄ
¾³¢B
±Ì\tgEFAÍLpÅ é±ÆðèÁÄÐz³êÜ·ªA*S̳ÛØ*
Å·B¤ÆÂ\«ÌÛØâÁèÌÚIÖÌK«ÍA¾Oɦ³ê½àÌàÜ
ßS¶ÝµÜ¹ñB
=head1 VtgJISR[hÆÍ(ú{êîñæè)
VtgJIS»ÍA}CN\tgÐÉæèJ³ê½Aú{ÌRs
[^ÅÅàæ
p¢çêé»û®Å·BVtgJISÍuMS¿(Microsoft¿)vAܽÍuSJIS
(ShiftJIS̪Ì)vÆàÄÎêĢܷB
©ÂÄú{ÌRs
[^[Uͼpм¼µ©g¦È©Á½½ßA]û®ÆÌÝ·«
ðÛ·éÚIÅVtgJISªJ³êܵ½B
VtgJISɨ¢ÄÍA16iÅ 0x81`0x9F Ü½Í 0xE0`0xEF ÌÍÍðÂINebg
ÉæÁÄ1¶2INebg[hªJnµÜ·B»µÄ±ÌINebgÍA»±©çnÜé
2INebg¶Ìæ1INebgƵijêÜ·B±(æ2)INebgÍA16iÅ
0x40`0x7E Ü½Í 0x80`0xFC ÌÍÍðÂlÅȯêÎÈèܹñBæ1INebgÌ
ÍÍÍg£ASCII¶ZbgAÂÜèÅãÊrbgªIÉÈÁ½8rbg¶ZbgÌÍÍ
É®SÉûÜÁÄ¢é±ÆÉڵľ³¢BܽVtgJISÍA¼pм¼ÆASCII/JIS
[}àT|[gµÄ¢Ü·B
êÌVtgJISdl(ÁÉ[Jdl)ÅÍA[Uè`¶ÌR[hÌæâAêÉæÁÄ
ͼpм¼ó¶ÌR[hÊuàè`³êĢܷBàµ{iIÈîñð·ð]ÞÌÅ
êÎA±Ìæ¤ÈR[hÌæâR[hÊuÍssÅ·BÆ¢¤ÌàA±Ìæ¤È¶ÍA
ÊÌú{ê»û®(ÂÜèJISÆEUC)ÌR[hÊuÉÏ·Å«È¢æ¤É»³êĵ
ܤ©çÅ·B
=head1 EBLyfBAÉæéuShift_JISvÌè`
Shift_JIS (2011.10.27 00:00:00 JST). In Wikipedia: The Free Encyclopedia.
Retrieved from
http://ja.wikipedia.org/wiki/Shift_JIS
oT: t[SÈTwEBLyfBA(Wikipedia)x
Shift_JISiVtgWXjÍA»Ý½Ìp\RãÌt@CàÅú{êð\·½ß
ÉgíêÄ¢é¶R[hÅ éB©ÂÄÍx_[ÉæéÆ©g£ðÜÞ¶R[h
QÉηéBȼÌÅ Á½ªA»ÝÍW»¶JIS X 0208Ì®1ÅKè³ê
Ä¢éBuShift_JISvÍIANAɨ¯éo^¼Å éB
Shift_JISÌa¶
1980NãAp\Rp16rbgCPUÌyà ¢ÜÁÄA¿â¼¼ð\¦Â\Èn[
hEFAðõ¦½p\Rª±XƳê½B»Ì½ßAú{êð\»Å«é¶
»û®ªÍõ³êÄ¢½iShift_JISðuVtgJISR[hvÆÄñÅ»¶
Wi¶R[hjÌÊÌÝðl¦éc_ª éªA±±ÅͶ»û®ÌÊÉ
Å_ðÄéjB
¶»û®Shift_JISÌÝvÒçÍAæsµÄæp³êÄ¢½JIS C 6220
i»ÝÌJIS X 0201jÌ8rbgiȺupE¼pJivjÆAJIS C 6226
i»ÝÌJIS X 0208AȺu¿vj̼¶Wð\»µæ¤Æµ½BܽAt@
CÌ嫳âÔÌZkð}é½ßAGXP[vV[PXȵŬÝÂ\É
·é±Æðé}µ½B
JIS C 6220ÆJIS C 6226Ì2ÂÍÆàÉAISO 2022ŶWðØèÖ¦Äp·é
Ývª Á½BISO 2022Éîö»û®ÅÍApA¼pJiA¿Í»ê
¼êA8rbgóÔÌÌGL/GRÆ¢¤ÌæÌ1Âði½¾µ¿Í2ñjg¤±ÆÅ
\»Å«éBàµpÆ¿Ì2ÂðGXP[vV[PXȵŬݵ½¢ÈçA
pðGLA¿ðGRÉèÄéû@ª éBEUC-JPÍA¨¨æ»»Ìæ¤ÉÀ
³êÄ¢éB
µ©µAp\RÅÍ·ÅÉAJIS X 0201Ì8rbgAÂÜèGLÉpAGRÉ1o
CgJ^Jii¼pJ^JijðèĽªyµÄ¢½BpÆ1oCgJ
^JiÌ2Â𮩷±ÆÍA¶»¯Ì´öÉÈé½ßð¯éKvª Á½B»Ì
½ßAISO 2022ÌgàÌÌæÉ¿ð¬Ý³¹é±ÆÍ¢ï¾Á½B
1982NA¿ÌÊuð¡GÉÚ®iVtgjµAóÔÌÔɵÞ
Shift JISªa¶µ½B±êðÀ»·é½ßÉÍA¿Ì1oCgÚƵÄAISO 2022
ɨ¯éGRiA1(16)-FE(16)jÌæÉ3ªÌ1cµÄ¢½¢gpÌæÉÁ¦AISO 2022É
¨¢ÄñgpÌCRi80(16)-9F(16)jÌæðgp·é±ÆƵ½B½¾µAGLi21(16)
-7E(16)jÌæɨ¢ÄÍAJIS X 0201ÌLɽéªÍÉÍð¯½B³çÉ2oC
gÚÉÍAISO 2022ÆÍÙÈèApE¼pJiÉgpÏÝÌÌæðàÜÞAGLA
CRAGRÉ ½éeÌæÌÙÚSÄðg¤Kvª Á½B
}CN\tgiú{@lj³ï·ÌÃìÉæéÆAShift_JIŞèÉÍAAX
L[A}CN\tgiÄjAOHd@A}CN\tgEFAEA\VGCcAf
W^T[`iÄjªÖíèAÁÉAXL[ÌRºÇ ªSÆÈÁÄ쬵½
à̾Ƣ¤B±êÉηéÙàƵÄAsåw³öÌÀªFêÍA}CN\
tgEFAEA\VGCcÆOHd@ÌÝ̤¯J¾Æ壵Ģ½ªARº{l
̾ÉæèÀªÍ©àðPñ·é¾ðµÄ¢éBܽÃÍLife with UNIXÌ
óiISBN 4-7561-0783-4jÌuUNIXl¼Tv|óÅÁMªip. 45jÅA[£
O±ÉuMS¿R[hÌìÒÌêlvÆ¢¤Ð©êÄ¢½B
Shift_JISÌW»
Shift_JISÍA»¶Wƻ̶»û®Ì¼ûðÜÞ»ÀÌâèðð·
é½ßÌZpÅ éB»êä¦AJIS X 0208̶WðpµÄÍ¢éàÌÌA
ISO 2022Ì»ÌûjÌÍÍÌOÉ éB
µ©µ»ÝÅÍAJIS X 0208:1997Ì®1ÉAuVtg»\»vÆ¢¤¼OÅ
dlªè`³êÄ¢éB±êÍAft@NgX^_[hÆÈÁÄ¢éZpÉ¢Ä
Ío©ðâèƹ¸AÆà©W»µÄµÜ¨¤Æ¢¤Ó}ªú{HÆW²¸ï
(JISC) É ÁÄ̱ÆÅ éB
JIS X 0208Ìg£KiÅ éJIS X 0213ÅÍA2000N§èÌÅÅ®1ƵÄ
Shift_JISX0213ªèßçê½B2004Nü³Ì10¶ÇÁɺÁÄAShift_JIS-2004
Ƽ̪ÏX³ê½B
IANAÅàuShift_JISvÆ¢¤¼OªèÄçêÄ¢éB
_Æ_
_
1. Sp¶ÆAJIS X 0201Åè`µ½¢íäé¼pJi¶ð¯êÌR[hÌnÅ
\ȁǎB
2. ú{ê«ɨ¢ÄÍAMS-DOSÅú{êp¶R[hƵÄÌp³êÄÈAp\
Rɨ¢Ä³|IÈyxª èA»Ì¼Ì¶»û®Éä×Äf[^ð·
Â\«ª¢B
_
1. ¼pJi̽ßÌÌæðmÛµ½ÖWãAR[hV[NGXªæ_ÔÌuæv
ÌæØèÅÍÈ¢ÓŪfµÄ¢éB±Ì½ßAR[hÔðZÅßéÛÍ
ÏGȪKvÅ éB
2. 2oCgÚÉ80(16)¢(ASCIIÌR[hÌæ)ª»êéB±Ì½ßA¶ÌæØèÌ
»èÉèÔª©©éBt@Câd¶Ì檩ç¶R[hÌ»èð·éêÍæ¢
ªAãë©ç»èðµæ¤Æ·éÆAÅ«ÌêAæªÜŽÇçȢƢ¯È¢
±Æª é½ßAvOÌìèûÉHvªKvÉÈéBܽA±ÌÌæÉÜÜ
êéê̶̵¢Ì½ßA}`oCgÌEUC-JPAUTF-8ÈÇÉä×AvO
~Oã̵¢ªïµ¢iðQÆjB
3. JIS⿪\»Å«È¢Bâ¿Ì¶ÍShift_JISÌR[h¢o^ªÉ
ûÜçÈ¢B
4. ¶WÉ¢ÄÍÀx_ªJIS X 0208ÅKè³êĢȢ@í˶Ìg£ð
{µÄ¢é±Æª½A±¤¢Á½g£ªÉÖµÄÍf[^ð·Â\«ªá¢B
2oCgÚª5CÉÈè¤é±ÆÉæéâè
Shift_JISÅÍAu\vu\vÈÇêÌÌ2oCgÚÉA5C(16)iShift_JISÅÍ
LAASCIIÈÇÅÍobNXbV
jðgpµÄ¢éB½ÌvO~O¾ê
(CAPerlABourne ShellÈǽ) ÅÍA±Ì5C(16)ðGXP[v¶ÆµÄ¢éB
µ½ªÁÄA\[XR[hâ¶f[^Ìɨ¢ÄShift_JISðzèµÄ¢È¢v
O~O«ÅÍâèªN±éB±ÌâèÍA¯¶æ¤É2oCgÚÌÍÍÉ5C(16)
ðÜÞBig5âAGBKÈÇ̶R[hÅඵ¤éB
ܽA5C(16)ÈOÉ¢ÄàÞÌâ誶·é±Æª éB½Æ¦ÎAUnixâ
MS-DOSÈÇÌVFãÅ7C(16) (Shift_JISâASCIIÅÍo[eBJo[) ðÜÞ¶
i|A|A|A|A|A|A|Accjðt@C¼Égpµæ¤Æ·éÆApCv
LÆF¯³êA³íÉt@Cªì¬³êÈ©Á½èAÇÝݪsÇÉÈÁ½è
·é±Æª éB
»ÝÅàAVOoCg¶R[hÎÌ\tgEFAðShift_JIS«Ågp·é
ÆAüsÈÇÌ®ìât@C¼ÌÈÇɵεαÌâèªÂ«ÜƤB±Ì
sïðµA2oCgÚÉ5C(16)ð¶ÍÉu¾ß¶vÆÄÎêA±ÌÉ
Íu\vu\vu\vu\vÈÇêÊÉgppxÌ¢¶àÜÜêéB
±Ìâèðñð·é`IÈû@ƵÄA\[XR[hSÌðEUCR[hâUTF-8ÈÇÉ
Ï·µÄ©çRpCµ½èÀsµ½è·éû@ª éiáFPerl Ìencodingv
O}jB é¢Íu\v¨u\\vÌæ¤ÉA2oCgÚ̼O(u¼ãvÆ©êÄ¢é
îñÍëèÅA³µÍu¼OvB»¤ÅȯêÎA¾ß¶ðGXP[v·é±Æª
Å«È¢B)ÉGXP[v¶Ì5C(16)ðLqµAu¾ß¶vð¶ÆµÄ³µF¯
³¹éû@à éiáFPerlÌSjis\tgEFAjB é¢Í¶Ü½Í¶ñƵÄ
µí¸ÎÛ¶¨æÑà\»`®ðlÌzñƵÄÏ·ðs¢Aæ赤Ûɶ
ɵĵ¤û@à éiáFPerl ÌEncodeW
[jB
á
u\íÈ¢vÆ¢¤¶ñª¢Â©Ìf¦Â\tgÅuúÈ¢vƶ»¯·éá
ªpÉÉ©çêéB
\ í È ¢
8d5c 82ed 82c8 82a2
obNXbV
É ½é5cª²¯éÆA
8d 82ed 82c8 82a2
 È ¢
u¢vÆ¢¤¶ÌƱëÅfR[hªÄ¯ú³êã̶ñͳíÉßéBܽ¯l
Éu|\Evªu|EvÉ»¯éáà éB
| \ E
8c7c 945c 8a45
obNXbV
É ½é5cª²¯éÆA
8c7c 94 8a45
| E
\ 2oCgÚÉ5C(16)ðÂ¶ê ¶ (16i) ÇÝEÓ¡
\ 815C _bV
\ 835C м¼Ìu»v
\ 845C L¶ÌEB
\/? 875C Windows«ÅÍ[}Ì9
Mac«ÅÍGB(MKoCg)
\ 895C ¤í³B
\ 8A5C C¢
\ 8B5C ´ÞB¼\
\ 8C5C ¯¢Bl¼B
\ 8D5C ©Ü¦éB\¢
\ 8E5C JCRB{\
\ 8F5C ¿Ì10B
\ 905C षAµñB\¿
\ 915C »AÐBu]vÌóüWÌi³ÌjB\·
\ 925C ½ñB\y
\ 935C ÍéB\t
\ 945C ̤B\Í
\ 955C çí·AÐå¤B\»
\ 965C ÎêéAÚ¤B\Í
\ 975C 究ßAæB\õ
\ 985C ëBî\
\ 995C ÆA¤³¬BuevÌÙÌ
\ 9A5C ©B\
\ 9B5C ±¤B\a(uaÌñ·¦)
\ 9C5C âBí¶Ìuív̳Ì
\ 9D5C ¾B\ß
\ 9E5C ÈÌÊÌ
\ 9F5C ··éA»¤Aµå¤B
à\ E05C ³ç¤AµãñB
á\ E15C Ó²AÙñB
â\ E25C ÆéAÖ¢B
ã\ E35C âA³¢B
ä\ E45C ÅñAµèBä\
å\ E55C ¢BaCå\X
æ\ E65C GÌÌ
ç\ E75C ÌÌÃ
è\ E85C ÂÎBÌè\(Õ)B
é\ E95C ÜñBé\ª
ê\ EA5C oB¹Ì¼B
úx ED5C µãñB
ûx EE5C ¬åB
ú\ FA5C í½A±¤B
û\ FB5C ¬ñB
R[hóÔɨ¯é¶§À
Shift_JISÌ2oCgR[hÌóÔÍAæ1oCgª81(16)-9F(16)ÈçÑÉE0(16)-
FC(16)Aæ2oCgª40(16)-7E(16)ÈçÑÉ80(16)-FC(16)Å éBµ½ªÁÄA
60~188=11280¶A³çÉ1oCgR[hª158¶iXy[XðÜÝADELͦ¸j
Å é½ßAv11438¶ÆÈéB
ȨAShift_JIS-2004ÅÍA2oCg¶ª11233¶A1oCg¶ª158¶Ì½ßA
v11391¶ðgpµÄ¢éB
Shift_JISɨ¯éuVtgvÆÍ
Shift JISÌuVtgvÆÍA256~256̽ÊÌŶð¡GÉ"¸ç·"Æ¢¤Ó¡
ÌuVtgvÅ éB
ISO-2022-JPÍw¦V[PXÅ¿ÆAt@xbgðØèÖ¦é»û®Å éB
ܽAEUC-JPÍâ¿Æ¼pJ^JiðVOVtgÅêIÉØèÖ¦Äg¤
»û®Å éB±êçÌ»û®ÅsíêÄ¢éAe¶WÌÊðVtgR[
hÉæÁÄØèÖ¦éìàuVtgvÆÄÎêéªAShift_JISÌuVtgvͱê
çÆÍÙÈéÓ¡Å éBܽrbgð¸ç·ìirbgVtgjÆàÙÈéB
Shift_JISÆæ_Ô
Shift_JISª»ÌÎÛÉ·é¶WÍAJIS X 0208Å éB±Ì»¶W
ÉÍAæ_ÔÆ¢¤TOª¶Ý·éB±êÍA94~94̶\ÌsÆñÌÔÌg
Å éB
Shift_JISÅÍA8140(16)-FCFC(16)Æ¢¤æ¤ÉAJIS X 0208ÆÍÜÁ½áÁ½R[
hÌnÅ éªAJIS X 0208ðvZÉæèÏ`µ½àÌÅ é½ßAæ_Ôðp¢Ä
¶ÌR[h|Cgðwµ¦·±Æª½¢BàeÉ¢ÄÍAJIS X 0208Ì1`94æ
Ư¶Å éB½¾µA@í˶¶ÅÍAVtgJISÌóÔ©çt¬µA94æÌ
ºûÉ ½©à120æÜŪg£µÄ¢é©Ìæ¤Éµ¤±Æª éB95æÈãÍA
ISO/IEC 2022É¥Á½JIS X 0208Ì\¢ÅͶݵ¾È¢ÌÅA{ͨ©µ¢B
x_Æ©Ìñö®ÈTOÅ éBȨAJIS X 0213ÌKiÌêÅ é
Shift_JISX0213»\»É¨¢ÄÍAæ1oCgF0(16)È~ð2Ê̶ÉèÄÄ
¨èAS½æÆ¢¤æ¤È¶ÝµÈ¢æÔÍoêµÈ¢B
ux-sjisvÆuMS_Kanjiv
ux-sjisvÆuMS_KanjivÍÆàÉAHTMLhL
gÌucharsetvÌwèÉ
uShift_JISvÌʼƵÄg¤±ÆªoéB
ux-sjisvÍIANAÉuShift_JISvÆ¢¤¼Oðo^·éOÉANetscape Navigator
2.0ɨ¢ÄgÁÄ¢½GR[fBOÌwèq¼Å éBêÌHTML¶¬\tgª
©®Å±ÌwèqðgÝñÅgÁÄ¢éB»Ì½ßF¯Â\ÈuEUª éªA
uShift_JISvÉ«·¦é±Æð§µÄ¢éB
uMS_KanjivÍIANAÉæèuShift_JISvÌʼƵÄèÄçêÄ¢éB
=head1 ±Ì\tgEFAÅÌ "ShiftJIS"
±Ì\tgEFAÅ¢¤ "ShiftJIS" ÍãLÌuR[hóÔɨ¯é¶§ÀvÌ
11438¶·×Äðµ¦é±ÆðÚwµÄ¢Ü·B»Ì½ßÉASYÍ2Âgí
êĢܷB
* ASY 1
INebgÌÀÑ©ç¶ðæèo·Æ«A1INebgR[hÆ2INebgR[h
ÌæÊÍæ1INebgR[hÌÝÅsíêÜ·Bæ2INebgÍl¶³êܹñB
1INebgR[h:
0x00-0x80, 0xA0-0xDF, 0xFD-0xFF
2INebgR[h:
æ1INebg 0x81-0x9F, 0xE0-0xEF, 0xF0-0xFC
æ2INebg 0x00-0xFF (·×Ä)
s³È1INebgR[h:
0x81-0x9F, 0xE0-0xFC
* ¶ñÌÅIINebgª2INebgR[hÌæ1INebgƯ¶ê
ȺÉR[h\ðfڵܷB
1INebgR[h\
0 1 2 3 4 5 6 7 8 9 A B C D E F
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0x00-0x80
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
7|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8|*| | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
9| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0xA0-0xDF
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
B|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
D|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
E| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
F| | | | | | | | | | | | | |*|*|*| 0xFD-0xFF
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2INebgR[h\
æ1INebg æ2INebg
0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0| | | | | | | | | | | | | | | | | 0|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0x00-0xFF
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1| | | | | | | | | | | | | | | | | 1|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2| | | | | | | | | | | | | | | | | 2|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3| | | | | | | | | | | | | | | | | 3|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4| | | | | | | | | | | | | | | | | 4|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5| | | | | | | | | | | | | | | | | 5|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6| | | | | | | | | | | | | | | | | 6|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
7| | | | | | | | | | | | | | | | | 7|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8| |*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0x81-0x9F 8|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
9|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 9|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A| | | | | | | | | | | | | | | | | A|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
B| | | | | | | | | | | | | | | | | B|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C| | | | | | | | | | | | | | | | | C|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
D| | | | | | | | | | | | | | | | | D|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
E|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0xE0-0xFC E|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
F|*|*|*|*|*|*|*|*|*|*|*|*|*| | | | F|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
¶ñÌÅIINebgª2INebgR[hÌæ1INebgƯ¶ê
s³Å ÁÄà³³ê½èA©®IÉí³êé±ÆÍ èܹñB
á¦ÎAEsjis::chop ͱÌINebgðԵܷB
*s³È* 1INebgR[h
0 1 2 3 4 5 6 7 8 9 A B C D E F
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
7| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8| |M|M|M|M|M|M|M|M|M|M|M|M|M|M|M| 0x81-0x9F
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
9|M|M|M|M|M|M|M|M|M|M|M|M|M|M|M|M|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
B| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
D| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
E|M|M|M|M|M|M|M|M|M|M|M|M|M|M|M|M|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
F|M|M|M|M|M|M|M|M|M|M|M|M|M| | | | 0xE0-0xFC
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
=head1 x_Ê SJIS R[hê
http://home.m05.itscom.net/numa/cde/sjis-euc/sjis.html
DEC PC 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
DEC WS 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Fujitsu TrueType font (PC) 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Fujitsu FontCity font (PC) 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Hitachi PC 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Hitachi WS 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
IBM 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
NEC Windows (PC) 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
NEC DOS (PC) 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
SONY NEWS-OS 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Sun Wabi 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Unisys PC 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
HP Japan Japanese HP-15 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
AT&T Japan 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Mitsubishi Electric FONTRUNNER 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Concurrent Japan 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
Informix ASCII INFORMIX V6 ALS 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC), (0xFD)(0xA1-0xFE)(0xA1-0xFE)
Oracle Oracle7 (Release 7.1.3) 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x00-0xFF)
Sybase SQL Server, Open Server 0x00-0x7F, 0xA1-0xDF, (0x81-0x9F, 0xE0-0xFC)(0x40-0x7E, 0x80-0xFC)
ú{êîñ(ISBN 4-89052-708-7)æè
Hewlett-Packard HP-15 0x00-0x7F, 0xA1-0xDF, (0x80-0xA0, 0xE0-0xFE)(0x21-0x7E, 0x80-0xFF)
* ASY 2
ASY 1 ÉàÖíç¸Atr/// Éæè¶ÌÍÍðwè³ê½êÍȺ̶
ÌݪLøÆÈèÜ·B
1INebgR[h:
0x00-0x80, 0xA0-0xDF, 0xFD-0xFF
2INebgR[h:
æ1INebg 0x81-0x9F, 0xE0-0xEF, 0xF0-0xFC
æ2INebg 0x40-0x7E, 0x80-0xFC
á¦ÎA[\x81\x00-\x82\xFF] Æ©ê½êÍ [\x81\x82][\x40-\x7E\x80-\xFC] ð
Ó¡µÜ·B
ȺÉR[h\ðfڵܷB
1INebgR[h\
0 1 2 3 4 5 6 7 8 9 A B C D E F
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0x00-0x80
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
7|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8|*| | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
9| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0xA0-0xDF
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
B|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
D|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
E| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
F| | | | | | | | | | | | | |*|*|*| 0xFD-0xFF
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2INebgR[h\
æ1INebg æ2INebg
0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0| | | | | | | | | | | | | | | | | 0| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1| | | | | | | | | | | | | | | | | 1| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2| | | | | | | | | | | | | | | | | 2| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3| | | | | | | | | | | | | | | | | 3| | | | | | | | | | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4| | | | | | | | | | | | | | | | | 4|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0x40-0x7E
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5| | | | | | | | | | | | | | | | | 5|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6| | | | | | | | | | | | | | | | | 6|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
7| | | | | | | | | | | | | | | | | 7|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8| |*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0x81-0x9F 8|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0x80-0xFC
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
9|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 9|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A| | | | | | | | | | | | | | | | | A|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
B| | | | | | | | | | | | | | | | | B|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C| | | | | | | | | | | | | | | | | C|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
D| | | | | | | | | | | | | | | | | D|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
E|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*| 0xE0-0xFC E|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
F|*|*|*|*|*|*|*|*|*|*|*|*|*| | | | F|*|*|*|*|*|*|*|*|*|*|*|*|*| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
=head1 ÚWƵĢéàÌ
vO~O Perl æ3Å VOLUME 1 (ISBN 4-87311-096-3)
15Í Unicode QÆ
Unicode T|[gª perl ɱü³êéÈOÍAeq ZqÍA2ÂÌXJ[ÏÉæÁ
Ä\³ê½oCgñð½¾ä×Ģܵ½Bperl5.8 È~Aeq ÍA2ÂÌoCgñðä×é
Æ¯É UTF8 tOðl¶µÜ·B
perl5.8 È~Ìîñf
+----------------------+---------------------+
| Text strings | |
+----------+-----------| Binary strings |
| UTF8 | Latin-1 | |
+----------+-----------+---------------------+
| UTF8 | Not UTF8 |
| Flagged | Flagged |
+--------------------------------------------+
http://perl-users.jp/articles/advent-calendar/2010/casual/4
±Ì}ðo¦È¢ÆvOð¯Ü¹ñB
(ǤµÄ Latin-1 ¾¯Áʵ¢·éÌŵ天H)
ÊIɱÌÏXÍAßÌXNvgÆVµ¢XNvgÌÔÉå«Èaðìèܵ½B
àÍâ¼ÒÌXNvgÍR[hðÝ¢ÉÄp·é±ÆªÅ«Ü¹ñBܽVµ¢û@Í
vO}ÉSð©¯é½ßA»¶·éXNvgª·×Äu«·íéÌÍܾܾÔ
ª©©éÆvíêÜ·B
Vµ¢û@ÅâèÆÈÁÄ¢é±ÆÍ UTF8 tOÍÀÛ̶ñÌ»ÆêvµÈ¢±Æ
Å·B©ªÅìÁ½XNvgÍ»ÌfobOÌOÉ®IÉÓéܤ UTF8 tOÉ¢Ä
fobOµÈ¯êÎÈèܹñB
UNIX/C¾êIÈ perl3 È~A é¢Í±Ì\tgEFAÉæéîñf
+--------------------------------------------+
| Text strings as Binary strings |
| Binary strings as Text strings |
+--------------------------------------------+
| Not UTF8 Flagged, UNIX/C-ism |
+--------------------------------------------+
»±ÅA±Ìû@Éß·±ÆÉæÁÄÇÌæ¤Éð³êéÌ©AÙ±èÉÜÝê½Ã¢
Programming Perl, 3rd ed. (Mó vO~OPerl æ3Å) Ì402y[Wðà¤êx
ÐàÆ¢ÄÝܵå¤EEEB
zIÉÍAȺÌ5ÂÌS[ðÀ»µæ¤Æl¦Ä¢Ü·B
=over 2
=item * S[1
ù¶ÌoCgwüÌXNvgÍAÈOµÁÄ¢½ù¶ÌoCgwüÌf[^Éε
ÄAÈOƯlÉ®ì·×«Å éB
±ÌÚWͱÌ\tgEFAªAutf8 vO}Ìæ¤É perl ÉηéÇÁ@\Å
é±ÆÉæÁÄB¬³êĢܷB½àt¯Á¦È¢ perl ͱêÜÅÊèÌ®ì
ð·é͸ŷB
=item * S[2
ù¶ÌoCgwüÌXNvgÍA½àèðÁ¦¸ÉA(»¤·é±ÆªKØÅ êÎ)
Vµ¢¶wüÌf[^ÉεÄà®ì·éæ¤ÉÈé׫ŠéB
gÝÖ length, substr, index, rindex, pos ÈÇ̶ñÌ·³âÊuðµ¤
àÌÍ¡ÜÅǨèÉ1INebgð 1 ƦܷB±ÌªÉ¢ĽàèÍÁ
íèܹñB2INebgR[h1¶Ì length Í 2 ÉÈèÜ·B
êûAXNvg̳K\»ÍA}`oCg¶Ì½ßÌAJ[Oð
Lq·éKvª èÜ·ªA»êð ȽÉãíÁıÌ\tgEFAªs¢Ü·B
S[1ÆS[2Ìàeð}¦µÜ·B
GOAL#1 GOAL#2
(a) (b) (c) (d) (e)
+--------------+-------+-------+-------+-------+-------+
| data | Old | Old | New | Old | New |
+--------------+-------+-------+-------+-------+-------+
| script | Old | Old | New |
+--------------+-------+---------------+---------------+
| interpreter | Old | New |
+--------------+-------+-------------------------------+
Old --- ù¶ÌoCgwü
New --- Vµ¢¶wü
f[^AXNvgAC^v^ÌVEÉÖµÄAãÌ (a) ©ç (e) ÜÅÌ
g¹ª èÜ·B±Ì¶ª©ê½É¶ÝµÈ©Á½ Encode W
[Æ
±Ì\tgEFAA¨æѶݵĢ½ JPerl ð««µÄÝܵå¤B
(a) (b) (c) (d) (e)
JPerl,japerl Encode,Sjis
+--------------+-------+-------+-------+-------+-------+
| data | Old | Old | New | Old | New |
+--------------+-------+-------+-------+-------+-------+
| script | Old | Old | New |
+--------------+-------+---------------+---------------+
| interpreter | Old | New |
+--------------+-------+-------------------------------+
Old --- ù¶ÌoCgwü
New --- Vµ¢¶wü
JPerl ªÆÄàDêÄ¢éRÍ (c) ÌÊuÉ é©çÅ·B·Èí¿ú{ê
ðs¤½ßÉXNvgÉÁÊÈLqðs¤Kvª èܹñB
=item * S[3
XNvgÍAVµ¢¶wü[hÅàAÈOÌoCgwü[hƯ¶Xs[
hÅ®ì·×«Å éB
»êͳB¾ÁÄAȺÌÔªKv¾àÌB
(1) XNvgðGXP[vµÄAoCgwü Perl ŵ¦éæ¤É·é½ßÌ
ÔB½¾µA³ê½XNvgÍ۶ūé½ßAñ©çͱÌÔðÈ
·±ÆàÂ\Å·B
(2) GXP[v³ê½XNvgª}`oCgAJ[Oðs¢ÈªçA
³K\»ðÀs·éÔB
·Åɶݷé ASCII f[^Í1¶ª1INebgÉpbN³êĢܷB»Ì
f[^ÆÝ·«ðۿȪç¶íð⻤ƷéÆAISO-2022 Ìæ¤ÉGXP[
vV[PXªKvÅ Á½èAShiftJIS â UTF-8 Ìæ¤É "GXP[vrbg"
ªKvÉÈÁ½èµÜ·B±êçÌGXP[vªÁíé½ßAÈOƯ¶Xs[
hÅ®ì·×«Å éÆ¢¤ÌͳÈÚW¾Æv¢Ü·B
¢ÂÌú© Larry Wall ³ñɱÌS[̱ÆðuËÄݽ¢Å·(Gx[^[Ì
Å)B
=item * S[4
Perl ÍAoCgwüÌ Perl ƶwüÌ Perl É}ª©ê¹¸ÉA1Â̾êÅ
豯é׫ŠéB
JPerl Í Perl ¾êðªò³¹È¢æ¤É·é½ßÉAC^v^ðªò³¹Üµ½B
Åà Perl RA`[ÍC^v^̪òð]ñŢȢÌŵå¤BÊIÉS[
4ÆͤçÍçÉPerl¾êªªò·é±ÆÉÈèAPerlR~
jeBÍk¬µÜµ½B
oCgwüÌ perl Í·ÅÉoCif[^𵤱ƪūé½ßA¶wüÌ
perl ðʧÄÅ쬷éKvÍ èܹñBܽ±Ì\tgEFAÍAPÈéAv
P[VvOÈÌÅAPerl RA`[©çáÉÜêé±ÆàȢŵ夵A
UíêéSzà èܹñB
»êÉâèð Perl XNvgÅðµæ¤Æ·éÈçAPerl R~
jeBÌT|[g
ð¾çêéŵå¤B
Sjis\tgEFAÍA1Â̾êE1ÂÌC^v^ðÀ»µÜ·B
=item * S[5
JPerl [Uª Perl Å JPerl ðÛçÅ«éæ¤ÉÈéB
JPerl ª¢Âà Ƚ̻ÎÉ èÜ·æ¤É ...
=back
Programming Perl, 3rd ed. ª©ê½ ÉÍAUTF8 tOͶÜêĨç¸APerl Í
ÈPÈdðÈPÉÅ«éæ¤ÉÝv³êĢܵ½B±Ì\tgEFAÍÌæ¤È
vO~O«ðñµÜ·B
=head1 Perl팣
Rs
[^ÈwÒÌÉÍ(ÁÉÒ³å`Ò½¿Í)Ûè·éÒà¢é̾ªA
lÔÆ¢¤àÌÍÏíÁ½`ÌSðÁÄ¢éàÌÈ̾BSÌ`ͽRÅÍÈ¢
ÌÅAÐÇcßé±ÆȵÉͽçÈÊÉÊ·é±ÆÍÅ«È¢Bµ©µß
20NÈãÉí½ÁÄARs
[^Ò³å`Ò½¿Í¼ð«Ì_aÉæì«A¢Å
§¿ãªéÆAÞçÌMò·éÖ~IÈ´õ³ðN©êÆÈà¢ÄñÁ½B
ÞçÌM󾪩á¢Ìè]ÍAN½¿ÌSðÞçÌvll®É¤æ¤Éìè
ϦÄAN½¿Ìvlp^[ð éíÌ´z³Ì½´Éµßé±Æ¾Á½B
½ÊɵÜêéÆ¢¤±ÆÍAÜÁ½ìÑÌÈ¢¶ÝÉÈÁĵܤ±ÆÉ
µ¢B
--- ßÄÌPerl xviii
൱êðªÉÌí¾Æv¤ÈçA»ÌÊèÅ·BNà±Ìæ¤ÈóµðDñÅ
¢éí¯ÅÍ èܹñBÅàAPerlÍüÍÆGR[fBO̵¢ÉÖµÄA
xXgðsµÄêÜ·BàµðjðZbgµÄâè¼¹éÌÈçA»ÌÉÍ
±ñÈɽÌëèðƳȢÌÅ·ªB
--- ßÄÌPerl æ6Å
ÆÍ¢¦PerlÅUnicodef[^ð·éÛÉo¦Ä¨©È¯êÎÈçÈ¢ÅàdvÈ
±ÆÍAUnicodef[^ðgpµÈ¢ê(ÇÌt@CàUTF-8ƵÄ}[N³êÄ
¨ç¸A©ÂUTF-8P[ðgpµÄ¢È¢ê)AK¢Perl5.005_3hÉ¢
éÓèðÅ«éÆ¢¤±ÆÅ·BUnicode@\ð¾¦IÉgpµÄ¢È¢ÀèA
Unicode@\ª ȽÌR[hðW°é±ÆÍ èܹñBUnicodeðæèüêȪç
®ÌoCgÎXNvgðWQµÈ¢Æ¢¤±Ì2ÂÌÚWªÃ¦ÄƬðà½
ç·±Æà èÜ·ªA³µ¢±ÆðÙÁÄs¤A»êªPerlÌû®Å èAPerlÌû
jÅà èÜ·B
--- ÀpPerlvO~O æ2Å
=head1 Sjis \tgEFAa¶ÌÍȵ
Perl3 È~Ì Perl ÍoCif[^ð·éXNvgðLqÅ«Ü·B
»êÍÈPɾ¦ÎAÇñÈf[^ÅàÅ«éÆ¢¤±ÆÅ·B
f[^Æ¢¤ÆAú{àÅÍ(àÆàÆ1981NÉCP/M-86ÌàpƵÄlÄ
³ê½)VtgJIS»û®ªAîñð·pA³çÉÍîñ~ÏpƵÄLgí
êĢܷB¾©çA»Ìf[^ð·éXNvgðVtgJISÅ쬷éÌ
Ͳ©RÈIðÅ·B
ÅàAcOȱÆÉ perl C^v^ÍVtgJISÌPerlXNvgð»ÌÜÜ
ÅÍÀs·é±ÆªÅ«È¢ÌÅ·B
µ©µÈªç( Ƚ̢½) Perl XNvgÍf[^Å é±ÆÍÔá¢È¢
ÌÅA(ÊÉpÓµ½) Perl XNvgÅ»êðµAperl C^v^ÅÀs
Å«éXNvgÉÏ··é±ÆÈçAÅ«éÌÅÍȢŵ天H
¾êAC^v^AXNvgA»ê¼êÌeLXgAoCi̵¢ÌÂÛð
à¤êxÜÆßÄÝܵå¤B±±ÅÍVtgJISðoCiɪ޵ĢܷB
---------------------------------------------------
ÎÛ eLXg oCi
---------------------------------------------------
Perl¾ê XNvg  Â
perlC^v^ XNvg  sÂ
PerlXNvg f[^ Â Â
---------------------------------------------------
perl C^v^ÍoCiÌXNvgðÀsÅ«È¢¯êÇAPerl ¾êÆ
Perl XNvgª êÎA±Ì_ðJo[Å«»¤Év¦Ü·B
ܽ_ðÏ¦Ä Perl ÈO̼ÌvO~O¾ê«ðÜßÄ©nµ½Æ
«AÐÆÂÌXNvgt@CÉ¡Ì»û®Åe¶ñðLq
·éP[XÍ éÌŵ天H
ÐÆÂÌXNvgÌe¶ñÌ»û®ÍÐÆÂÅ[ªÅ·B
(cèÌ»û®Í16iGXP[vÅLq·éÆ¢¤±ÆÅ·B)
±Ì\tgEFAÍ»Ìæ¤ÈACfBAEOñðÉæÁÄìènßçêܵ
½B
=head1 Ql¶£AN
PerlvO~O
Larry Wall, Randal L.Schwartz, ß¡ Ãá ó
1993N2 s
ISBN 4-89052-384-7
http://www.context.co.jp/~cond/books/old-books.html
vO~OPerl üùÅ
By Larry Wall, Tom Christiansen, Randal L. Schwartz, ß¡ Ãá ó
1997N12 s
759y[W
ISBN 4-900900-48-6
http://www.oreilly.co.jp/out/pperl/index.htm
vO~OPerl æ3Å VOLUME 1
By Larry Wall, Tom Christiansen, Jon Orwant, ß¡ Ãá ó
2002N09 s
756y[W
ISBN 4-87311-096-3
http://www.oreilly.co.jp/books/4873110963/
vO~OPerl æ3Å VOLUME 2
By Larry Wall, Tom Christiansen, Jon Orwant, ß¡ Ãá ó
2002N09 s
680y[W
ISBN 4-87311-097-1
http://www.oreilly.co.jp/books/4873110971/
The Perl Language Reference Manual (for Perl version 5.12.1)
by Larry Wall and others
Paperback (6"x9"), 724 pages
Retail Price: $39.95 (pound 29.95 in UK)
ISBN 13: 978-1-906966-02-7
http://www.network-theory.co.uk/perl/language/
Perl Pocket Reference, 5th Edition
By Johan Vromans
Publisher: O'Reilly Media
Released: July 2011
Pages: 102
http://shop.oreilly.com/product/0636920018476.do
Programming Perl, 4th Edition
By: Tom Christiansen, brian d foy, Larry Wall, Jon Orwant
Publisher: O'Reilly Media
Formats: Print, Ebook, Safari Books Online
Released: March 2012
Pages: 1130
Print ISBN: 978-0-596-00492-7 | ISBN 10: 0-596-00492-3
Ebook ISBN: 978-1-4493-9890-3 | ISBN 10: 1-4493-9890-1
http://shop.oreilly.com/product/9780596004927.do
PerlNbNubN æ2Å VOLUME 1
By Tom Christiansen, Nathan Torkington, Shibuya Perl Mongers Äó, ®ïÐhL
gVXe ó
2004N09 s
752y[W
ISBN 4-87311-202-8
http://www.oreilly.co.jp/books/4873112028/
PerlNbNubN æ2Å VOLUME 2
By Tom Christiansen, Nathan Torkington, Shibuya Perl Mongers Äó, ®ïÐhL
gVXe ó
2004N09 s
464y[W
ISBN 4-87311-203-6
http://www.oreilly.co.jp/books/4873112036/
PerlNCbNt@X
By Stephen Spainhour, Ellen Siever, Nathan Patwardhan, ß¡ Ãá, äê \ê Äó
2000N03 s
784y[W
ISBN 4-900900-72-9
http://www.oreilly.co.jp/books/4900900729/
ßÄÌPerl Win32VXe
Randal L. Schwartz, Erik Olson, Tom Christiansen , Ln OY Äó, δ q_ ó
1998N11 s
348y[W
ISBN 4-900900-79-6
http://www.oreilly.co.jp/books/4900900796/
ßÄÌPerl æ5Å
Randal L. Schwartz, Tom Phoenix, brian d foy
2009N1024ú
424y[W
ISBN 978-4-87311-427-9
http://www.oreilly.co.jp/books/9784873114279/
ßÄÌPerl æ6Å
Randal L. Schwartz, brian d foy, Tom Phoenix , ß¡ Ãá ó
2012N07 s
488y[W
ISBN 978-4-87311-567-2
http://www.oreilly.co.jp/books/9784873115672/
Àp PerlvO~O æ2Å
Simon Cozens , ì Çñ ó
2006N03 s
320y[W
ISBN 4-87311-280-X
http://www.oreilly.co.jp/books/487311280X/
Perl\[XLbg - UNIXÅ
Futato, Irving, Jepson, Patwardhan, Siever ¤, CG[[x R{ _ ó
ISBN 4-900900-65-6
http://www.oreilly.co.jp/out/presuni/
PerlÌÖ椱»
OcO, ¬RTi, Ä¡õ, z{Ll ¤
1993N41ú s
280y[W
ISBN 4-7819-0697-4
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN4-7819-0697-4
VPerlÌÖ椱» Perl5ÎÅ
Ä¡õ, ¬RTi, OcO, z{Ll ¤
1996N41ú s
368y[W
ISBN 4-7819-0795-4
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN4-7819-0795-4
Üé²ÆPerl! Vol.1
¬e, {ìBF, É¡¼ç, ìFT,
ìM¾, Á¡ Ö, Î_ê, I´R÷, Ü©Ü©, rç³qm, ma.la, |ÇÍ, ³³¾±¤¢¿, ÂmL, HR²¹, vÛ³¡, êàV²j, Ìãa³
2006N0825ú
232y[W
ISBN 978-4-8443-2289-4
http://www.impressjapan.jp/books/2289
_Perlüå
qåã
2009N0209ú
344y[W
ISBN 10: 4798119172 | ISBN 13: 978-4798119175
http://www.seshop.com/product/detail/10250/
WEB+DB PRESS Vol.70
2012N0824ú
200y[W
ISBN 978-4-7741-5190-8
http://gihyo.jp/magazine/wdpress
ú{êîñ
Understanding Japanese Information Processing
By Ken Lunde, tÕ Ò, éØ ¶ ó
1995N8 s
496y[W
ISBN 4-89052-708-7
http://www.fukkan.com/vote.php3?no=4293
CJKVúØzîñ
Chinese, Japanese, Korean & Vietnamese Computing
By Ken Lunde, ¬¼ Í, tä È ó
2002N12 s
1172y[W
ISBN 4-87311-108-0
http://www.oreilly.co.jp/books/4873111080/
Úà ³K\» æ2Å
By Jeffrey E. F. Friedl, ca ó
2003N05 s
464y[W
ISBN 4-87311-130-7
http://www.oreilly.co.jp/books/4873111307/
Úà ³K\» æ3Å
By Jeffrey E. F. Friedl, ®ïÐOe[^·ö O ó
2008N04 s
528y[W
ISBN 978-4-87311-359-3
http://www.oreilly.co.jp/books/9784873113593/
³K\»NbNubN
Jan Goyvaerts, Steven Levithan , ·ö O ó
2010N04 s
552y[W
ISBN 978-4-87311-450-7
http://www.oreilly.co.jp/books/9784873114507/
JIS¿T
Åì ki Ò
1456 Å
ISBN 4-542-20129-5
http://www.webstore.jsa.or.jp/lib/lib.asp?fn=/manual/mnl01_12.htm
C^[lbgã̶R[h
¬Ñ ´¶, Àª Fê, ˺ N, Oã ìM Ò
285
ISBN 4-320-12038-8
http://www.kyoritsu-pub.co.jp/bookdetail/9784320120389
¶Ìðj\¢ÄÆú{Ò\
Àª Fê, Àª fq
2006N210ú s
288y[W
ISBN 4-320-12102-7
http://www.kyoritsu-pub.co.jp/bookdetail/9784320121027
¶Ìðj AWAÒ
Oã ìM
2002N320ú s
377y[W
ISBN 4-320-12040-X
http://www.amazon.co.jp/gp/product/432012040X
UnicodeWüå
gj[EOn , £ au, CVË O ó, Öû ³T ÄC
2001N529ú s
455y[W
ISBN 4-7981-0030-7
http://www.seshop.com/product/detail/2276/
UnicodeÉæéJIS X 0213Àüå
cÛ OY
2008N825ú s
200y[W
ISBN 978-4-89100-608-2
http://ec.nikkeibp.co.jp/item/books/A04500.html
Unicode IVS/IVDüå
cÛ OY, ¬Ñ ´¶
2013N0304ú s
336y[W
ISBN 978-4-82229-483-0
http://store.nikkeibp.co.jp/item/books/P94830.html
UNIX MAGAZINE
1993N8
172y[W
T1008901080816 G08901-8
http://ascii.asciimw.jp/books/books/detail/978-4-7561-5008-0.shtml
LINUXú{ê«
R`_¶, Stephen J. Turnbull, Craig ¬c, Robert J. Bickel
2000N06 s
376y[W
ISBN 4-87311-016-5
http://www.oreilly.co.jp/books/4873110165/
MacPerlüå
Vicki Brown, Chris Nandor , ()RXEvlbg ó
1999N03 s
399y[W
ISBN 4-7561-3068-2
Macintoshf[^pp
Îc L
1995N2 s
230y[W
ISBN 4-89563-408-6
MPWvO~OuÀ
Handmade Intelligence
1992N8 s
346y[W
ISBN 4-7561-0963-2
ZL
AWebvO~OTipsW
²¼Ø qM
2008N3 s
421y[W
ISBN 10: 4883732568
ISBN 13: 978-4883732562
Windows NTVFXNvg
Tim Hill , õcG ó
1998N106ú s
448y[W
ISBN 4-7973-0658-0
http://books-support.sbcr.jp/isbn/macmillan/ntwrkshp/index.htm
}CN\tgö®ðà Microsoft Windows R}hCpKCh
2004N1227ú s
500y[W
ISBN 4-89100-438-X
http://ec.nikkeibp.co.jp/item/books/587500.html
·Jì E³ñ, Û»³K\»CuÈÇ
http://lc.linux.or.jp/lc2001/papers/dfa-i18n-paper.pdf
http://lc.linux.or.jp/lc2002/papers/hasegawa0918h.pdf
http://lc.linux.or.jp/lc2002/papers/hasegawa0918p.pdf
http://www.j-tokkyo.com/2003/G06F/JP2003-242179.shtml
Oc ׬³ñ, }`oCg¶Zbgp³K\»RpC\¬û@yÑvO
http://patent.astamuse.com/ja/published/JP/No/2007102744
YAMAGAKI Norio, }`oCgü¯¶ñÆpLÀI[g}g¶¬VXe
http://www.wipo.int/pctdb/ja/wo.jsp?WO=2009116646&IA=JP2009055515
Tokyo-pm Û¶É
http://mail.pm.org/pipermail/tokyo-pm/
http://mail.pm.org/pipermail/tokyo-pm/1999-September/001844.html
http://mail.pm.org/pipermail/tokyo-pm/1999-September/001854.html
ruby-list
http://blade.nagaokaut.ac.jp/ruby/ruby-list/index.shtml
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/2440
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/2446
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/2569
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/9427
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/9431
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/10500
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/10501
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/10502
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/12385
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/12392
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/12393
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/19156
Object-oriented with Perl
http://www.freeml.com/perl-oo/486
http://www.freeml.com/perl-oo/487
http://www.freeml.com/perl-oo/490
http://www.freeml.com/perl-oo/491
http://www.freeml.com/perl-oo/492
http://www.freeml.com/perl-oo/494
http://www.freeml.com/perl-oo/514
CPAN Directory INABA Hitoshi
http://search.cpan.org/~ina/
BackPAN
http://backpan.perl.org/authors/id/I/IN/INA/
Recent Perl packages by "INABA Hitoshi"
http://code.activestate.com/ppm/author:INABA-Hitoshi/
=head1 Ó«
cOȪçA´Ó·é·×ÄÌlð±±É±ÆªÅ«Ü¹ñB»¤¾©çÆ¢ÁÄA»ê
ðRɵÄȺÌûXÖÌ´ÓÍȪ·éí¯ÉÍ¢©È¢Åµå¤B
Rº Ç ³ñ, VtgJISÌfUCÌb
ttp://furukawablog.spaces.live.com/Blog/cns!1pmWgsL289nm7Shn7cS0jHzA!2225.entry (NØê)
ttp://shino.tumblr.com/post/116166805/1981-us-jis
(æªÉ 'h' ðtÁµÄANZXµÄ¾³¢)
http://www.wdic.org/w/WDIC/%E3%82%B7%E3%83%95%E3%83%88JIS
ú{êîñðs¤ÛA¢ÜàÁÄVtgJISÙÇÀpIÈ»û®Í èܹñB
»ÌRÍ3 éÆv¢Ü·B
1. ù¶Ì¼pJ^JiÌf[^Æ»ÌÜܤ¶Å«éBßÌYð»ÝÉp³Å«éÆ
¢¤±ÆÍA»ÝÌYð¢Öp³Å«é±Æ𦴵ĢܷB
2. codepoint Æ grapheme ÌPʪêv·éB±Ì¨©°ÅVXeðìéÐÆÆg¤ÐÆ
ÌÔÅêꪶµÜ¹ñB
3. ãÌèLÆ\¦EóãÌèLªêv·éB±ÌHvªæÊÝvA [ÝvA
»êÉJ[\ÌÚ®Éð§¿Ü·B
1981NÌ_ÅA±±ÜÅl¦Ä¢½Rº³ñÍnbJ[ÆÄÔÉÓ³íµ¢Åµå¤B
Larry Wall ³ñ, Perl
http://www.perl.org/
Perl ª³K\»ÉæÁÄoCif[^ðµ¦é±ÆÅA±Ì\tgEFAª¬§µÄ¢
Ü·Bo[WÔÌÝ·«Ì³Éà¯çêܵ½B³K\»Ì^¶âeíNH[
gÌf~^ÍAð·×«ÎÛÅ éêûÅAð·éÛÌèiƵÄàð§¿Ü·B
ൠPerl ªÈ¯êÎAâèà¶Ý¹¸Aܽ»êðð·éìÑàÈ¢ÞüÈl¶ð
éƱëŵ½B
¾©ç Larry Wall ³ñÉÍÆÁÄà´ÓµÄ¢Ü·I
Ìã a³³ñ, jcode.pl
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
http://log.utashiro.com/pub/2006/07/jkondo_a580.html
ÅÉ Perl ÉoïÁ½ÌÍÌã³ñÌ©ê½ UNIX MAGAZINE ÌLŵ½Bt@C
eXgZq -TA-B Ì@\ðÀ»·éR[hÍLÉ©ê½àÌðÙÚ»ÌÜÜgÁÄ
¢Ü·Bܽú{êîñð·M³ê½ Ì Ken Lunde ³ñÌæ¶Åà éµAJeffrey
E. F. Friedl ³ñÌÚà³K\»ÌÄóà³êÄ¢ÄA±Ì\tgEFAÌüÍÉÍíÉ
Ìã³ñªoêµÜ·B
Tokyo.pm Ì[OXgÅÍAVµ¢@\ðÀ»·é½ßÉV½ÉÀð·éêÅàA
ßÉìçê½\tgEFAƯêÌC^tF[XÉ·éÆ¢¤Aæ¢ACfBAð³í
èܵ½B
æÙÇüÍƾ¢Üµ½ªAÀÍ»êÍṞÆÅA±Ì\tgEFAÍ jcode.pl Ì
\[XðàÆɵÄ쬳꽩çÅ·B¾©ç½ðǤl¦ÄàÌã³ñȵÅA±Ì\
tgEFAª¶Üêé±ÆÍÈ©Á½Æv¤ÌÅ·B
Jeffrey E. F. Friedl ³ñ, Úà³K\»
http://regex.info/
Úà³K\»(æ2Å)ðͶßÄÇñ¾Æ«A½ª¢Ä éÌ©SðÅ«¸AÄÁ«è
pêÅðÁĵÜÁ½ÌÅÍÈ¢©Æ^Á½ÙÇŵ½Bµ©µÈªç P.340 Matching
Nested Constructs with Embedded Code ª©ªªKvƵĢéR[h¾ÆCâ½Æ«Í
ÆÄàðµ©Á½Ìðo¦Ä¢Ü·(橽çpêÅŵ½)B
»ñÈí¯ÅlXgµ½ÊðÅ«éÌÍA¶}(Fumie)³ñ̨©°Å·B
(Ì´Óª`íèÜ·æ¤É...B)
Ken Lunde ³ñ, ú{êîñACJKVúØzîñ
http://www.fukkan.com/vote.php3?no=4293
http://www.oreilly.co.jp/books/4873111080/
uú{êîñvuCJKVúØzîñvðÇñŶWKiÆ»û®ðwÑA
¶»¯Ì´öÉ¢Äðª[Üèܵ½B³çÉ JPerl Ìà¾ÌÓÉÄuæèæ¢
ÂÀ«(optimal portability)vÆ¢¤¾t©çAAvP[VvOÆA¾ê
nÌÓ½ÂÌÂÀ«ð¯Éð·×«¾Æ¢¤±ÆÉCé¹Äàç¢Üµ½B
Appendix W: Perl Code Examples ÌÌ CJKV Encoding TemplatesAMultiple-Byte
AnchoringAMultiple-Byte Processing àÆÄàQlÉÈèܵ½B
̳³â©ÈnbNƵÄA±±Å Jeffrey E. F. Friedl ³ñɴӵܷB
åA ms³ñ, Shift-JISeLXgð³µµ¤
http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm
uShift-JISeLXgð³µµ¤vÅAPerlÅShiftJISðµ¤Æ«ÌmEnEð³¦Ä
¸«A èªÆ¤²´¢Ü·B±ÌTCgÌàeðàÆÉAXNvgÌe¶ñ
Ìu\vðu\\vÉÏ··étB^vOðìéƱë©çnßAáOðµ¸Â
«Á¦Ä¢±ÆűÌ\tgEFAªìçêÄ¢«Üµ½B
u·¢¶ñÉηé³K\»õvÉ¢ÄàÀÉ©·±ÆªÅ«Üµ½B
൱ÌTCgð©È©Á½ÌÈçASjis\tgEFAðì꽩Ǥ©è©ÅÍ èܹ
ñB
ÜÂàÆ ä«Ðë³ñ, Ruby on Perl(s)
http://www.rubyist.net/~matz/slides/yapc2006/
YAPC::Asia 2006 Tokyo "Ruby on Perl(s)" ÅuCSIÍsÂ\¶áÈ¢v±Æðª©èâ·
³¦Äàç¢Üµ½B¡x Ruby Åðìé±ÆÉÈÁ½çAæ뵨袵ܷB
¡ª av³ñ, jperl[U[̽ßÉ
http://homepage1.nifty.com/kazuf/jperl.html
ver.0.71 ð쬷éÛAª¼ÚpūȢ«ÅÌeXg̽ßÉ60ñàÌ[Ì
âèæèðµAJÉfobOÉt«Áĸ«Üµ½B èªÆ¤²´¢Üµ½B
Bruce. ³ñ, Unicode in Perl
http://www.rakunet.org/tsnet/TSabc/18/546.html
aò G¾³ñ, WindowsÅPerl 5.8/5.10ðg¤¶áÈ¢
http://dl.dropbox.com/u/23756062/perlwin.html
https://sites.google.com/site/hiroa63iz/perlwin
Ë{ q¶³ñ, Perl/WindowsÅÌt@CpX
http://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A1%E3%83%A2%2FWindows%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%91%E3%82%B9
chaichanPaPa³ñ, VtgJIS¿Ìt@C¼É}b`µÄÝé
http://d.hatena.ne.jp/chaichanPaPa/20080802/1217660826
éØ Iv³ñ, Jperl
http://homepage2.nifty.com/kipp/perl/jperl/
nÓ ¶³ñ, Jperl
http://www.cpan.org/src/5.0/jperl/
http://search.cpan.org/~watanabe/
ftp://ftp.oreilly.co.jp/pcjp98/watanabe/jperlconf.ppt
The Perl Confernce Japan (1998)ÅJperlJÌoÜð·©¹Äàç¢Üµ½BJPerl ©ç
ÍAú{êÎÅÌ Perl ÍÇÌæ¤Èà̪g¢â·¢Ì©ð³íèܵ½Btr///b à
ord à reverse àÝñÈ JPerl Ì®ìð^µÜµ½(¨©°ÅeXgvOÜÅ
à礱ƪūܵ½)B
ànÓ³ñÌƫƯ¶N©ªñ¶áÈ¢©Æ(¡à)Ò¿±¯Ä¢éí¯Å·ªA
ÒÁÄ¢éÔÉ Perl Åvg^CvðìÁĨ«Üµ½BÒÂÌÍyµ¢±ÆÅ·B
Chuck Houpt ³ñ, ìà üqq³ñ, MacJPerl
http://habilis.net/macjperl/index.j.html
Î_ ê³ñ, Pod-PerldocJp, _PerlÌ¢EÖ椱»
http://search.cpan.org/dist/Pod-PerldocJp/
http://gihyo.jp/dev/serial/01/modern-perl/0031
http://gihyo.jp/dev/serial/01/modern-perl/0032
http://gihyo.jp/dev/serial/01/modern-perl/0033
u_PerlÌ¢EÖ椱»vÌAÚªÆÄàQlÉÈèÜ·BÁÉæ31ñ©çæ33ñÍ
JPerl ÉÖAµ½àeÅAZpIÉàðjIÉàÆÄàãk§ÈLÅ·B
±Ì\tgEFAª_PerlÖÌ˯´ÆµÄð§ÄÎK¢Å·B
¡ áY³ñ, Perl Hackers Hub æ16ñ Perlà\¢Ì[Éé(2)
http://gihyo.jp/dev/serial/01/perl-hackers-hub/001602
¬ e³ñ, Encode W
[
http://search.cpan.org/dist/Encode/
http://www.archive.org/details/YAPCAsia2006TokyoPerl58andUnicodeMythsFactsandChanges (®æ)
http://yapc.g.hatena.ne.jp/jkondo/ (¹º)
YAPC::Asia 2006 Tokyo "Perl5.8 and Unicode: Myths, Facts and Changes" Å Perl5.8
ÅÌÏX_ðÚµ³¦Äàç¢Üµ½BCPAN Ì face icon ͱÌXChÉoÄé
Perl5.6 = a city without bridges Ìæ©çqgð¾Ä¢Ü·B±êÍ5.005VeB
©çGXP[v·é½ßÌubWð\íµÄ¢Ü·B
´ ³³ñ, JPerl Wiki
http://ja.jperl.wikia.com/wiki/JPerl_Wiki
Juerd ³ñ, Perl Unicode Advice
http://juerd.nl/site.plp/perluniadvice
daily dayflower ³ñ, 2008-06-25 perluniadvice
http://d.hatena.ne.jp/dayflower/20080625/1214374293
Jesse Vincent ³ñ, Compatibility is a virtue
http://www.nntp.perl.org/group/perl.perl5.porters/2010/05/msg159825.html
=cut
# ¢©ªÅµ½©HyµñÅ¢½¾¯Üµ½©H