Beta Shell
v2.0 · web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
share
/
doc
/
perl-Exporter-Tiny
/
examples
/
Example
Upload
3 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
Exporter.pm
1.07 KB
-rw-r--r--
2017-05-22 11:10:45
Edit
Del
Editing: Exporter.pm
(1.07 KB)
Path: /usr/share/doc/perl-Exporter-Tiny/examples/Example/Exporter.pm
Back
use 5.006001; use strict; use warnings; package Example::Exporter; # Inherit from Exporter::Tiny. # use base 'Exporter::Tiny'; # The list of functions to export by default. # Be conservative. # our @EXPORT = qw( fib ); # The list of functions which are allowed to # be exported. Be liberal. # our @EXPORT_OK = qw( embiggen ); # Note that there was no need to list "fib" # in @EXPORT_OK. It was in @EXPORT, so it's # implicitly ok. # This is the definition of the "fib" function # that we want to export. # sub fib { my $n = $_[0]; (int($n) eq $n) && ($n >= 0) or die "Expected natural number as argument; got '$n'"; return $n if $n < 2; fib($n - 1) + fib($n - 2); } # We won't define a standard embiggen function. # Instead we will generate one when requested. # sub _generate_embiggen { my ($class, $name, $arg, $globals) = @_; my $embiggen_amount = exists($arg->{amount}) ? $arg->{amount} : 1; # This is the sub that will be installed into # the caller's namespace. # return sub ($) { my $n = $_[0]; return $n + $embiggen_amount; } } 1; # Make Perl Happy™