curry(3)

okay so bestie, this is curry(3) from the User Contributed Perl Documentation, and it's literally the manual page for curry β€” the module that creates automatic curried method call closures for any class or object. no cap, it's giving tiny-but-mighty icon behavior πŸŽ€

✨ NAME ✨

curry β€” create automatic curried method call closures for any class or object πŸ’…

🌸 SYNOPSIS 🌸

okay so here's the vibe:

use curry;

my $code = $obj->curry::frobnicate('foo');

is equivalent to:

my $code = sub { $obj->frobnicate(foo => @_) };

If you have a method name (or a coderef), you can call (as of version 2):

my $code = $obj->curry::_($method => 'foo');

Additionally,

use curry::weak;

my $code = $obj->curry::weak::frobnicate('foo');

is equivalent to:

my $code = do {
  Scalar::Util::weaken(my $weak_obj = $obj);
  sub {
    return unless $weak_obj; # in case it already went away
    $weak_obj->frobnicate(foo => @_)
  };
};

Similarly, given a method name or coderef (as of version 2):

my $code = $obj->curry::weak::_($method => 'foo');

There are also $curry::curry and $curry::weak globals that work equivalently to curry::_ and curry::weak::_ respectively β€” you'll quite possibly see them in existing code because they were provided in pre-2.0 versions, but they're unlikely to be the best option for new code. iykyk πŸ’œ

πŸ”₯ RATIONALE πŸ”₯

How many times have you written

sub { $obj->something($some, $args, @_) }

or worse still needed to weaken it and had to check and re-check your code to be sure you weren't closing over things the wrong way? 😭

Right. That's why I wrote this. periodt. πŸ’…


πŸ‘‘ AUTHOR πŸ‘‘

mst - Matt S. Trout (cpan:MSTROUT) <mst@shadowcat.co.uk> 🫢

🌈 CONTRIBUTORS 🌈

None yet - maybe this software is perfect! (ahahahahahahahahaha) πŸ’€

Copyright (c) 2012 the curry "AUTHOR" and "CONTRIBUTORS" as listed above. 🌸

πŸ’– LICENSE πŸ’–

This library is free software and may be distributed under the same terms as perl itself. slay ✨

okay bye bestie β€” this lil page is from perl v5.42.0, dated 2021-12-31, and it's the curry(3) manpage. mwah πŸ’‹

πŸ“¦ where this page comes from