===============================================================================
Shiolink/Perl SimpleFPerlx with xvLVDLL
===============================================================================
Version : 1.0

Shiolink/Perl SimpleƂ́H
vLVSHIORIuSHIOLINK.DLLvgpPerlxłB
E{\
x[XƂȂZp͊Perlxu/ProxyvƂقƂǕς܂BPerl
֐ĂňnASTDINǂނAʂ̈ႢłB
Ă܂񂪃I[o[wbh̓pCvȕ኱̕܂B
Ext[[N
x[XVXeۂƓnĂĂȂ̂ƓȂ̂ŁAƂ肠xƂ
ĂƏ΂g悤ɊȒPȘgg݂Ă݂܂B
jƂẮAgvȞx쐬t[[NuȂ䂫v̎Ƃ
łĕςāAfpŃ~j}Ȏڎw܂B
ccSimpleȂ͂ƃIuWFNgwłA₽傻ꂽ(ؘa
G~[gƂ)悤ƂĊȂ̂Ńx[XƂȂSimpleJ܂B

S[Xg\
Et@C\
ghost/master̒ɂt@C
 licenses/     StrawberryPerl̍ĔzzCZX
 perl/         perl{̂Perl̃Cu
 scripts/+     x\XNvg
         | init.pl    SHIOLINKNXNvg
         | shiori.pl  SHIORI̊ȒPȎ
         | events.pl  eCxg̒`
         | (kis_lesser.txt)  events.pl̎ŎgpeXgf[^
 descript.txt  
 SHIOLINK.dll  shiori.dll
 SHIOLINK.INI  SHIOLINK̐ݒt@C
 test.bat      fobOp
 test_req.txt  fobOp
ׂ̂Ȃ̂͊{Iscripts/events.pl݂̂łB

ES
SHIOLINKsSHIORIvUTF-8Perlɓn̂ŁAPerlIOC:utf8
STDIN,STDOUTɂ܂āA\[X͑Suse utf8Ă܂B

Einit.pl
SHIOLINKɂghost/master/perl/bin/perl.exeĂ΂܂B
ghost/master/perl/libCũfBNgɐݒ肵܂B
o͂:utf8Cݒ肵Ao͂̃LbV}ݒ肵܂B
shiori.plɂShiori::mainloops܂B

Eshiori.pl
̃XNvginit.plPrequireAShiori::mainloopĂ΂܂B
SHIORIȒPȃVXe\܂B
Ŝpackage ShiorĩXR[vɓĂÃVXe̍\Cxg
ǂɖO̐Ȃǂ炳Ȃ悤ɂȂĂ܂B
Shiolink/Perl SimpleSHIORI͎ăVvłB
Shiori::mainloopSHIOLINKSHIORI APIload,request,unloadɂĂяo
܂B
load$system->{loaddir}ghost/master̃pXi[ArequestSHIORIvɑ΂
鉞ĂяoAunloadexit܂B
SHIORIvɑ΂鉞́AparseAcallbackAresponce3֐ō\Ă܂B
parse̓R}hs̃\bh(GET)A^Cv(SHIORI/SAORI)Ao[W(3.0)
A܂NGXgwb_߂ănbVt@XɊi[܂B
callbackSHIORI/3.0IDwb_Ɉv֐̊֐sĉValuewb
_Xe[^XR[hɊi[܂B܂ꕔ̃NGXgɂĂ͎Iɖ]܂
ftHg̉Ԃ܂B
responce͈ȏŐꂽXe[^XR[h⃌X|Xwb_SHIORI/3.0
Ԃ܂B
Cxg֐̎ɒڊ֌WSHIORIvɑ΂鉞֐̓Tv͈ȉ̒
łB
0.SHIORIv󂯎܂B
1.vCxgƁApbP[ŴȂ(܂main::)֐ŃCxgID
  (OnBootȂ)Ɗ֐v̂s܂(ŌĂ΂֐͎ڂɏq
  ׂevents.plɏ邱Ƃz肳Ă܂)BPerl@̊֌WŁAID
  '.''_'ɒu܂B
  ̓NGXg̃wb_ׂĂĂnbVt@XA
  'SHIORI'܂'SAORI'̕łB
  Ԓlɂ͑ԒlValue(bêXNvg)ԂĂB
  IvVƂđɃXe[^XR[hl(204Ȃ)AOValueȊO
  ̃wb_(OnCommunicateȂǂŎgp)̃nbVt@XԂ܂B
2.ValueXe[^XR[hȂ̃wb_ƂɓK؂SHIORIԂ܂B

Eevents.pl
̃XNvginit.plPrequire܂BȂ̂ŖOCɓȂ
炻̋Lqς΂łB
shiori.plĂ΂eCxg̃Tu[``܂B
use utf8UTF-8(BOMȂ)ŕۑĂ(notepadBOM܂)B
SHIORǏĂяodlɏ]֐̎ȉɎ܂B
sub OnEventID{ # ֐̓Cxg(OnBootȂ '.''_'ɒu)
	# :NGXg̃wb_ׂĂĂnbVt@X
	#          wb_L[ł($requestheaders->{Reference0}Ȃ)
	my $requestheaders = shift;
	# :'SHIORI'܂'SAORI'Ă܂B
	my $type = shift;
	...
	# Ԓl
	# Ԓl:bêXNvg(Valuewb_e)
	# Ԓl:Xe[^XR[h(ȗ)
	# OԒl:ValueȊÕwb_̃nbVt@X
	#          ($headers->{Reference0} = ''Ȃ)(ȗ)
	return $value,$statuscode,$headers;
}
܂CxgłȂsub initsub endɞx̋NȈʓr܂(ȗ
)B
OShiori::ȊO͗\񂳂Ă܂BstrictĂȂDɎ
ĂB
ȂXNvgs̃JgfBNgSHIOLINK̎dlghost/masterłB
KvȂevents.pl`chdirȂ肵ĂB

Ȇ
ẐŎۃ\[XłB
shiori.pl̒parse,callback,responceȏȂ̂ł60s炢B
events.pl{Ɋ{IȃCxg͏̂ŎQlɂĂB


EW[
LangxĂ̂Lang牽łł邺IƂ|Ǝv̂łAzzX
ɗ̓~j}ɂȂ悤Perl̃CuȂʁAutf8PerlIO֘Â݂
Ă܂B\XgCbNȊłB
Ȃ̂ŕKvW[Ȃꍇ͓KXǉĂBԂ񕁒iIuWFNgw
IȑgݕĂlɂ͕sւȊƎv܂B
Ƃuse strictuse warningsgꍇłAPerl̕WzzCu
strict.pmwarnings.pmƂĂghost/master/perl/libɓKv܂B
܂AK\[0-9]Ƃgꍇ́AWCuutf8_heavy.plA̋@
\gƂɕWCuunicore/Heavy.pl܂B
perl/libɓĂutf8_heavy.plstrictwarningsRgAEg
Ȃ̂ŁAېFXȋ@\gꍇutf8_heavy.plK̂̂ŏ㏑Kv
Ă邩܂B
PerlIO֘AW[炷':encoding(utf8)'Ȃ':utf8'łB

̑
EG
PerlƂĝ瓖OǁA֐ƂĂ邵ǂ
Čƞxƌؘa~hEFAɎĂB
E̓W]
SimplełƂĂ炩͍XVłA܂̂ƂŏIIɂƊ
ՂȎsȂ\łBPerl̓ɂ݌vƂ̂ЂƂv
ȂĂAuȂłvقǍ͂ȂĂccB
傻ꂽ͂ڂڂB

CZX
{ghostPerlXNvǵAPerl̃CZXɏ]Ƃɂ܂B
pĂ郉CuAVF͂ꂼ̃CZXQƂĂB

pCuȂ
SHIOLINK.dll : ǂƃXe[V
               http://code.google.com/p/shiori-basic/
               http://d.hatena.ne.jp/dot_station/20080528/p1
Perl         : Vanilla Perl Project
               http://strawberryperl.com/

zzE
Ezz
FޗǍ http://narazaka.net/c/ukagaka/ghost/shiolink_perl_simple/
E
ޗǍ^ <ӂȂ炴ǂƂ˂>
