|
NAMESub::Multi - Data::Bind-based multi-sub dispatchSYNOPSISmy $multi_sub = Sub::Multi->new($sub1, $sub2, $sub3); Now dispatch to the right subroutine, based on @args. $multi_sub->(@args); DESCRIPTIONPerl6 allows multiple subs and methods with the same name, differing only in their signature.multi sub bar (Dog $foo) {?} multi sub bar (Cat $foo) {?} Dispatching will happen based on the runtime signature of the subroutine or method call. newmy $multi_sub = Sub::Multi->new($sub1, $sub2, $sub3); $multi_sub->(@args); Build and return a code reference that will dispatch based on the Perl6 multi dispatch semantics. TODO: Verify this statement: Before the method is actually dispatched, a call to Data::Bind->sub_signature should be made to register the subroutine signature. add_multimy $multi_sub = Sub::Multi->add_multi($sub_name, \&sub ); $multi_sub->(@args); Associates $sub_name with "\&sub", and returns code reference that will dispatch appropriately. "add_multi" can be called multiple times with the same $sub_name to build a multi-dispatch method. TODO: Verify this statement: Before the method is actually dispatched, a call to Data::Bind->sub_signature should be made to register the subroutine signature. SEE ALSOData::BindTODO: Add a good reference to Perl6 multiple dispatch here. AUTHORSChia-liang Kao <clkao@clkao.org>COPYRIGHTCopyright 2006 by Chia-liang Kao and others.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See <http://www.perl.com/perl/misc/Artistic.html>
Visit the GSP FreeBSD Man Page Interface. |