Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ExportTo(3)	      User Contributed Perl Documentation	   ExportTo(3)

NAME
       ExportTo	- export any function/method to	any namespace

VERSION
       Version 0.03

SYNOPSIS
	package	From;

	sub function_1{
	  # ...
	}

	sub function_2{
	  # ...
	}

	sub function_3{
	  # ...
	}

	use ExportTo (NameSpace1 => [qw/function_1 function_2/], NameSpace2 => [qw/function_3/]);

	# Now, function_1 and function_2 are exported to 'NameSpace1' namespace.
	# function_3 is	exported to 'NameSpace2' namespace.

	# If 'NameSpace1'/'NameSpace2' namespace has same name function/method,
	# such a function/method is not	exported and ExportTo croaks.
	# but if you want to override, you can do it as	following.

	use ExportTo (NameSpace1 => [qw/+function_1 function_2/]);

	# if adding + to function/method name,
	# This override	function/method	which namespace	already	has with exported function/method.

	use ExportTo ('+NameSpace' => [qw/function_1 function_2/]);

	# if you add + to namespace name, all functions	are exported even if namespace already has function/method.

	use ExportTo ('+NameSpace' => {function_ => sub{print 1}, function_2 =>	'function_2'});

	# if using hashref instead of arrayref,	its key	is regarded as subroutine name and
	# value	is regarded as its coderef/subroutine name. and	this subroutine	name will be exported.

DESCRIPTION
       This module allow you to	export/override	subroutine/method to one
       namespace.  It can be used for mix-in, for extension of modules not
       using inheritance.

FUNCTION/METHOD
       export_to
	    # example 1	& 2
	    export_to(PACKAGE_NAME => [qw/FUNCTION_NAME/]);
	    ExportTo->export_to(PACKAGE_NAME =>	[qw/FUNCTION_NAME/]);

	    # example 3
	    ExportTo->export_to(PACKAGE_NAME =>	{SUBROUTINE_NAME => sub{ .... }, SUBROUTINE_NAME2 => 'FUNCTION_NAME'});

	   These are as	same as	following.

	    # example 1	& 2
	    use	ExportTo(PACKAGE_NAME => [qw/FUNCTION_NAME/]);

	    # example 3
	    use	ExportTo(PACKAGE_NAME => {SUBROUTINE_NAME => sub{ .... }, SUBROUTINE_NAME2 => 'FUNCTION_NAME'});

	   But,	'use' is needed	to declare after declaration of
	   function/method.  using 'export_to',	you can	write anywhere.

Export from another package to another package (with renaming).
       This is used in Util::Any.  For example,	CGI::Util's "escape" function
       to other	package.

	package	main;
	use CGI	();

	# export CGI::Util::escape to OtherA
	use ExportTo (OtherA =>	['CGI::Util::escape']);

	# export CGI::Util::escape to OtherB as	cgi_escape
	use ExportTo (OtherB =>	{cgi_escape => \&CGI::Util::escape});

	print OtherA::escape("/"); # %2F
	print OtherB::cgi_escape("/"); # %2F

Import from another package's subroutine to current package (with renaming)
       It is as	same as	above.

	use CGI	();

	# export CGI::Util::escape to current package
	use ExportTo (__PACKAGE__, ['CGI::Util::escape']);

	# export CGI::Util::escape to current package as cgi_escape
	use ExportTo (__PACKAGE__, {cgi_escape => \&CGI::Util::escape});

	print main::escape("/"); # %2F
	print main::cgi_escape("/"); # %2F

       But for this purpose, Sub::Import has better interface.

AUTHOR
       Ktat, "<ktat at cpan.org>"

BUGS
       Please report any bugs or feature requests to "bug-exportto at
       rt.cpan.org", or	through	the web	interface at
       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=ExportTo>.  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 ExportTo

       You can also look for information at:

       o   AnnoCPAN: Annotated CPAN documentation

	   <http://annocpan.org/dist/ExportTo>

       o   CPAN	Ratings

	   <http://cpanratings.perl.org/d/ExportTo>

       o   RT: CPAN's request tracker

	   <http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExportTo>

       o   Search CPAN

	   <http://search.cpan.org/dist/ExportTo>

SEE ALSO
       Sub::Import. If you import other	module's function to current package,
       it is better than ExportTo.

COPYRIGHT & LICENSE
       Copyright 2006-2009 Ktat, all rights reserved.

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

perl v5.32.0			  2009-10-11			   ExportTo(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | FUNCTION/METHOD | Export from another package to another package (with renaming). | Import from another package's subroutine to current package (with renaming) | AUTHOR | BUGS | SUPPORT | SEE ALSO | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ExportTo&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help