# info > Exporter::Tiny::Manual::QuickStart

## [Exporter::Tiny::ManualUseriContributed](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny%3A%3AManualUseriContributed/markdown))[Exporter::Tiny::Manual](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny%3A%3AManual/markdown)::[QuickStart(3pm)](https://www.chedong.com/phpMan.php/man/QuickStart/3pm/markdown)

## NAME
       [Exporter::Tiny::Manual::QuickStart](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny%3A%3AManual%3A%3AQuickStart/markdown) - the quickest way to get up and
       running with [Exporter::Tiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny/markdown)

## SYNOPSIS
          package MyUtils;

          use [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown) qw( frobnicate );

          sub frobnicate {
             ...;   # your code here
          }

          1;

       Now people can use your module like this:

          use MyUtils "frobnicate";

          [frobnicate(42)](https://www.chedong.com/phpMan.php/man/frobnicate/42/markdown);

       Or like this:

          use MyUtils "frobnicate" => { -as => "frob" };

          [frob(42)](https://www.chedong.com/phpMan.php/man/frob/42/markdown);

## DESCRIPTION
       See the synopsis. Yes, it's that simple.

   Next steps
       Default exports

       Note that the module in the synopsis doesn't export anything by
       default.  If people load "MyUtils" like this:

          use MyUtils;

       Then they haven't imported any functions. You can specify a default set
       of functions to be exported like this:

          package MyUtils;

          use [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown) qw( frobnicate );

          our @EXPORT = qw( frobnicate );

          sub frobnicate { ... }

          1;

       Or, if you want to be a superstar rock god:

          package MyUtils;

          use [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown) our @EXPORT = qw( frobnicate );

          sub frobnicate { ... }

          1;

       Tags

       You can provide tags for people to use:

          package MyUtils;

          use [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown) qw( frobnicate red green blue );

          our %EXPORT_TAGS = (
             utils   => [qw/ frobnicate /],
             colours => [qw/ red green blue /],
          );

          sub frobnicate { ... }
          sub red        { ... }
          sub green      { ... }
          sub blue       { ... }

          1;

       And people can now import your functions like this:

          use MyUtils ":colours";

       Or this:

          use MyUtils "-colours";

       Or take advantage of the fact that Perl magically quotes barewords
       preceded by a hyphen:

          use MyUtils -colours;

       Two tags are automatically defined for you: "-default" (which is just
       the same as @EXPORT) and "-all" (which is the union of @EXPORT and
       @EXPORT_OK). If you don't like them, then you can override them:

          our %EXPORT_TAGS = (
             default => \@some_other_stuff,
             all     => \@more_stuff,
          );

       Generators

       Exporting normally just works by copying a sub from your package into
       your caller's package. But sometimes it's useful instead to generate a
       custom sub to insert into your caller's package. This is pretty easy to
       do.

          package MyUtils;

          use [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown) qw( frobnicate );

          sub _generate_frobnicate {
             my $me     = shift;
             my $caller = caller;
             my ($name, $args) = @_;

             return sub {
                 ...;  # your code here
             };
          }

          1;

       The parameter $me here is a string containing the package name which is
       being imported from; $caller is the destination package; $name is the
       name of the sub (in this case "frobnicate"); and $args is a hashref of
       custom arguments for this function.

          # The hashref { foo => 42 } is $args above.
          #
          use MyUtils "frobnicate" => { foo => 42 };

   Avoiding [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown)
       [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown) is a tiny shim around [Exporter::Tiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny/markdown). It should mostly
       do what you want, but you may sometimes prefer to use [Exporter::Tiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny/markdown)
       directly.

       The example in the synopsis could have been written as:

          package MyUtils;

          use parent "[Exporter::Tiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny/markdown)";
          our @EXPORT_OK = qw( frobnicate );

          sub frobnicate {
             ...;   # your code here
          }

          1;

       What [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown) does is mostly just to set @EXPORT_OK for you and
       set up inheritance from the base class ([Exporter::Tiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny/markdown)).

       [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown) also sets $INC{'MyUtils.pm} for you, which in usually
       makes little difference, but is useful in some edge cases.

## SEE ALSO
       [Exporter::Shiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3AShiny/markdown), [Exporter::Tiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny/markdown).

       For more advanced information, see [Exporter::Tiny::Manual::Exporting](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny%3A%3AManual%3A%3AExporting/markdown).

## AUTHOR
       Toby Inkster <<tobyink@cpan.org>>.

## COPYRIGHT AND LICENCE
       This software is copyright (c) 2013-2014, 2017 by Toby Inkster.

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

## DISCLAIMER OF WARRANTIES
       THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
       WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
       MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

perl v5.30.0                      2020-[Exporter::Tiny::Manual](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny%3A%3AManual/markdown)::[QuickStart(3pm)](https://www.chedong.com/phpMan.php/man/QuickStart/3pm/markdown)
