The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Contextual::Call - call sub with caller's context

VERSION

Version 0.01

SYNOPSIS

 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;

DESCRIPTION

"ccall" function can invoke a function undef specified context (default is caller's context) and reproduce return value of that invocation.

This function is useful when you will override a method which returns different values between scalar and list context.

EXPORT

This module can export ccall function.

FUNCTIONS

ccall

 $cc = ccall($coderef);

Call specified code-ref with your context, and return a Contextual::Call object which contains result of that call. You can get the result appropriate for context.

This function is shortcut to "new" constructor.

CONSTRUCTOR

new

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

Call specified code-ref with your context, and return a Contextual::Call object. This method is OO-style of "ccall" function.

METHODS

result

 return $obj->result();

Return result value with same context with ccall/new.

AUTHOR

YAMASHINA Hio, <hio at cpan.org>

BUGS

Please report any bugs or feature requests to bug-contextual-call at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Contextual-Call. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Contextual::Call

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2007 YAMASHINA Hio, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.