=encoding utf8

=for stopwords
	YAMASHINA
	Hio
	ACKNOWLEDGEMENTS
	AnnoCPAN
	CPAN
	RT
	OO-style
	ccall

=head1 名前

Contextual::Call - 呼び出し元のコンテキストで関数呼び出し

=head1 バージョン

Version 0.01


=head1 概要

 use Contextual::Call qw(ccall);

 # invoke sub with your context.
 my $cc = ccall($coderef);
 
 ... some processes ..
 
 # and return value which was returned by $coderef and 
 # is matched with context.
 return $cc->result;

=head1 説明

L</ccall> 関数は特定のコンテキスト(デフォルトでは呼び出した関数の
コンテキスト)での関数呼び出しと, その呼び出し結果から復帰値の
再生成を行うことができます.

コンテキストによって復帰値が変わるメソッドをオーバーロード
する時に便利です.

=head1 エクスポート

C<ccall> 関数をエクスポートできます.

=head1 関数

=head2 ccall

 $cc = ccall($coderef);

指定した関数リファレンスを ccall を呼び出した関数と同じ
コンテキストで呼び出します. 呼び出した結果を格納した
Contextual::Call インスタンスを返します. 
結果は後でインスタンスからコンテキストにあった形で
取り出すことができます.

この関数は L</new> コンストラクタのお手軽形です.

=head1 コンストラクタ

=head2 new

 $obj = Contextual::Call->new({ context => wantarray, sub => $coderef });

指定した関数リファレンスを ccall を呼び出した関数と同じ
コンテキストで呼び出します. 呼び出した結果を格納した
Contextual::Call インスタンスを返します. 
このメソッドは L</ccall> 関数のオブジェクト指向形式です.

=head1 メソッド

=head2 result

 return $obj->result();

ccall/new を呼び出した時と同じコンテキストで呼び出し結果を返します.

=head1 著者

YAMASHINA Hio, C<< <hio at cpan.org> >>


=head1 バグ

バグや要望は C<bug-contextual-call at rt.cpan.org> 宛に
報告してください. 若しくは
L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Contextual-Call>.
にある web インターフェースからでもかまいません.
そこから私に通知され, そして私が変更を行うことで報告頂いたバグの進捗を
自動的にあなたに伝えるでしょう.

=head1 サポート

このモジュールのドキュメントは perldoc コマンドで見ることが出来ます.

    perldoc Contextual::Call

また, 以下の場所でも見ることが出来ます:

=over 4

=item * AnnoCPAN: Annotated CPAN documentation

L<http://annocpan.org/dist/Contextual-Call>


=item * CPAN Ratings

L<http://cpanratings.perl.org/d/Contextual-Call>


=item * RT: CPAN's request tracker

L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Contextual-Call>


=item * Search CPAN

L<http://search.cpan.org/dist/Contextual-Call>


=back

=head1 謝辞

=head1 著作権及びライセンス

Copyright 2007 YAMASHINA Hio, all rights reserved.


このプログラムはフリーソフトウェアです。あなたは Perl と同じ
ライセンスの 元で再配布及び変更を行うことが出来ます.

