Name: perl-Context-Preserve Summary: Run code after a subroutine call, preserving context Version: 0.03 Release: 5%{?dist} License: GPL+ or Artistic Source0: https://cpan.metacpan.org/authors/id/E/ET/ETHER/Context-Preserve-%{version}.tar.gz URL: https://metacpan.org/release/Context-Preserve BuildArch: noarch # Build BuildRequires: make BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76 BuildRequires: perl(strict) BuildRequires: perl(warnings) # Runtime BuildRequires: perl(base) BuildRequires: perl(Carp) BuildRequires: perl(Exporter) # Tests only BuildRequires: perl(File::Spec) BuildRequires: perl(ok) BuildRequires: perl(Test::Exception) BuildRequires: perl(Test::More) Requires: perl(:MODULE_COMPAT_%(eval "$(perl -V:version)"; echo $version)) %description Sometimes you need to call a function, get the results, act on the results, then return the result of the function. This is painful because of contexts; the original function can behave different if it's called in void, scalar, or list context. You can ignore the various cases and just pick one, but that's fragile. To do things right, you need to see which case you're being called in, and then call the function in that context. This results in 3 code paths, which is a pain to type in (and maintain). This module automates the process. You provide a coderef that is the "original function", and another coderef to run after the original runs. You can modify the return value (aliased to @_) here, and do whatever else you need to do. 'wantarray' is correct inside both coderefs; in "after", though, the return value is ignored and the value 'wantarray' returns is related to the context that the original function was called in. %prep %setup -q -n Context-Preserve-%{version} %build perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 make %{?_smp_mflags} %install make pure_install DESTDIR=%{buildroot} %{_fixperms} %{buildroot}/* %check make test %files %license LICENCE %doc CONTRIBUTING README Changes %{perl_vendorlib}/* %{_mandir}/man3/*.3* %changelog * Fri Feb 01 2019 Fedora Release Engineering - 0.03-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Fri Jul 13 2018 Fedora Release Engineering - 0.03-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Thu Jun 28 2018 Jitka Plesnikova - 0.03-3 - Perl 5.28 rebuild * Thu Feb 08 2018 Fedora Release Engineering - 0.03-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Mon Nov 06 2017 Jitka Plesnikova - 0.03-1 - 0.03 bump * Thu Jul 27 2017 Fedora Release Engineering - 0.02-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Sun Jun 04 2017 Jitka Plesnikova - 0.02-2 - Perl 5.26 rebuild * Fri May 12 2017 Jitka Plesnikova - 0.02-1 - 0.02 bump * Sat Feb 11 2017 Fedora Release Engineering - 0.01-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Sun May 15 2016 Jitka Plesnikova - 0.01-18 - Perl 5.24 rebuild * Thu Feb 04 2016 Fedora Release Engineering - 0.01-17 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Tue Jan 26 2016 Petr Šabata - 0.01-16 - Package cleanup * Thu Jun 18 2015 Fedora Release Engineering - 0.01-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Thu Jun 04 2015 Jitka Plesnikova - 0.01-14 - Perl 5.22 rebuild * Thu Aug 28 2014 Jitka Plesnikova - 0.01-13 - Perl 5.20 rebuild * Sat Jun 07 2014 Fedora Release Engineering - 0.01-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Sat Aug 03 2013 Fedora Release Engineering - 0.01-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Mon Jul 22 2013 Petr Pisar - 0.01-10 - Perl 5.18 rebuild * Thu Feb 14 2013 Fedora Release Engineering - 0.01-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Fri Jul 20 2012 Fedora Release Engineering - 0.01-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Wed Jun 13 2012 Petr Pisar - 0.01-7 - Perl 5.16 rebuild * Fri Jan 13 2012 Fedora Release Engineering - 0.01-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Tue Jun 21 2011 Marcela Mašláňová - 0.01-5 - Perl mass rebuild * Tue Feb 08 2011 Fedora Release Engineering - 0.01-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Wed Dec 15 2010 Marcela Maslanova - 0.01-3 - 661697 rebuild for fixing problems with vendorach/lib * Fri Apr 30 2010 Marcela Maslanova - 0.01-2 - Mass rebuild with perl-5.12.0 * Fri Mar 05 2010 Chris Weyl 0.01-1 - specfile by Fedora::App::MaintainerTools 0.004