# perldoc > Exporter::Tiny::Manual::QuickStart

---
type: CommandReference
command: Exporter::Tiny::Manual::QuickStart
mode: perldoc
section: 
source: perldoc
---

## Quick Reference
- `use Exporter::Shiny qw( frobnicate );` — Basic usage
- `use MyUtils "frobnicate" => { -as => "frob" };` — Rename imported function
- `our @EXPORT = qw( frobnicate );` — Set default exports
- `use Exporter::Shiny our @EXPORT = qw( frobnicate );` — Shorthand for default exports
- `our %EXPORT_TAGS = ( utils => [qw/ frobnicate /], colours => [qw/ red green blue /] );` — Define export tags
- `use MyUtils "-colours";` — Import using tag (bareword with hyphen)
- `sub _generate_frobnicate { ... }` — Generate custom sub on import
- `use parent "Exporter::Tiny";` — Use Exporter::Tiny directly instead of Exporter::Shiny

## Name
[Exporter::Tiny::Manual::QuickStart](https://metacpan.org/pod/Exporter::Tiny::Manual::QuickStart) — the quickest way to get up and running with [Exporter::Tiny](https://metacpan.org/pod/Exporter::Tiny)

## Synopsis
perl
package MyUtils;

use Exporter::Shiny qw( frobnicate );

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

1;
Now people can use your module like this:

perl
use MyUtils "frobnicate";

frobnicate(42);
Or like this:

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

frob(42);
## Examples

### Default exports
perl
package MyUtils;

use Exporter::Shiny qw( frobnicate );
our @EXPORT = qw( frobnicate );

sub frobnicate { ... }

1;
Or shorthand:
perl
package MyUtils;

use Exporter::Shiny our @EXPORT = qw( frobnicate );

sub frobnicate { ... }

1;
### Tags
perl
package MyUtils;

use Exporter::Shiny 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;
Import with tag:
perl
use MyUtils ":colours";
use MyUtils "-colours";
use MyUtils -colours;   # Perl quotes bareword after hyphen
Two tags are automatically defined: `-default` (same as `@EXPORT`) and `-all` (union of `@EXPORT` and `@EXPORT_OK`). Override them by redefining `%EXPORT_TAGS`.

### Generators
perl
package MyUtils;

use Exporter::Shiny qw( frobnicate );

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

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

1;
The generator receives `$me` (exporting package), `$caller` (destination package), `$name` (sub name), and `$args` (hashref of custom arguments). Example call:
perl
use MyUtils "frobnicate" => { foo => 42 };
### Avoiding Exporter::Shiny
perl
package MyUtils;

use parent "Exporter::Tiny";
our @EXPORT_OK = qw( frobnicate );

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

1;
## See Also
- [Exporter::Shiny](https://metacpan.org/pod/Exporter::Shiny)
- [Exporter::Tiny](https://metacpan.org/pod/Exporter::Tiny)
- [Exporter::Tiny::Manual::Exporting](https://metacpan.org/pod/Exporter::Tiny::Manual::Exporting) — advanced information