From d57ed48a8e7391e268d63dd2b108d3f80ff018a9 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 19 Aug 2012 05:51:38 -0500 Subject: add docs --- lib/Fun.pm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/Fun.pm b/lib/Fun.pm index c18b6bf..9e18e38 100644 --- a/lib/Fun.pm +++ b/lib/Fun.pm @@ -16,14 +16,42 @@ our @EXPORT = our @EXPORT_OK = ('fun'); =head1 SYNOPSIS + use Fun; + + fun float_eq ($a, $b, $e = 0.0001) { + return abs($a - $b) < $e; + } + =head1 DESCRIPTION +This mdoule provides C, a new keyword which defines functions the same way +that C does, except allowing for function signatures. These signatures +support defaults and slurpy arguments, but no other advanced features. The +behavior should be equivalent to taking the signature, stripping out the +defaults, and injecting C<< my = @_ >> at the start of the function, and +then applying defaults as appropriate. + =cut =head1 EXPORTS =head2 fun +Behaves identically to C, except that it does not support prototypes or +attributes, but it does support a simple function signature. This signature +consists of a comma separated list of variables, each variable optionally +followed by C<=> and an expression to use for a default. For instance: + + fun foo ($x, $y = 5) { + ... + } + +Defaults are evaluated every time the function is called, so global variable +access and things of that sort should work correctly. + +C supports creating both named and anonymous functions, just as C +does. + =cut sub fun { -- cgit v1.2.3-54-g00ecf