perl-Panda-next - Replacement for next::method, performing very fast, and super::method (next-by-mro), with Perl and

Property Value
Distribution ALT Linux Sisyphus
Repository Autoimports x86_64
Package filename perl-Panda-next-0.1.3-alt1.x86_64.rpm
Package name perl-Panda-next
Package version 0.1.3
Package release alt1
Package architecture x86_64
Package type rpm
Category Development/Perl
Homepage -
License -
Maintainer -
Download size 44.25 KB
Installed size 44.25 KB
Perl's `next::method' is a powerful tool which is required if you want to use C3 method resolution order.
However it is very slow (more than 10 times slower than `SUPER::subname'), so that if you actively use it,
and your code is fast, it can become slow quite soon.
`Panda::next' replaces `next::method', `maybe::next::method' and `next::can' with very fast versions which are nearly the same speed as
`SUPER::subname' calls and behave exactly as original methods. It replaces them globally even for modules that were loaded before `Panda::next'.
However using `next::' or `SUPER::' may lead to inconsistency in your code, because you could use `next::method' for a class which didn't say
`use mro 'c3'', or use `SUPER::' for a class which said `use mro 'c3''. Those methods don't care about your class's method resolution order,
they always behave the same. This may lead to hard-to-diagnose bugs in code, for example image hierarchy
/ \
B   C
\ /
where all of classes have (except for A, it just says __PACKAGE__)
sub func { say __PACKAGE__; shift->next::method }
and `D' didn't say `use mro 'c3''. For now it's okay, if you run this method, you will see `DBCA' as expected.
However if you remove methods from class `D' and class `B' you might expect to see <CA> however instead you will see just `A'.
That happens because there are 2 separate things: finding the entry method and finding the next method. Finding the first method is always
based on the MRO you selected (in our case it's DFS), while `next::method' or `SUPER::func' always uses certain MRO to find next method.
`Panda::next' introduces the new keyword <super::subname> which goes to the next method according to MRO of object's class
(or the class you initially called method on, in case of Class->method()). So if you replace shift->next::method with
shift->super::func, you will see `DBA' and `A' in our example because MRO is DFS. If you say `use mro 'c3'' in class `D', you will see
`DBCA' and `CA' as exp...


Package Version Architecture Repository
perl-Panda-next-0.1.3-alt1.i586.rpm 0.1.3 i586 Autoimports
perl-Panda-next - - -


Name Value
/usr/lib64/perl5 - - - - - - - - - -
perl(Panda/ -
perl( -
perl-base >= 1:5.12.0
rpmlib(PayloadIsLzma) -
rpmlib(SetVersions) -
rtld(GNU_HASH) -


Name Value
perl(Panda/ = 0.001.003
perl-Panda-next = 0.1.3-alt1


Type URL
Binary Package perl-Panda-next-0.1.3-alt1.x86_64.rpm
Source Package perl-Panda-next-0.1.3-alt1.src.rpm

Install Howto

  1. Add the following line to /etc/apt/sources.list:
    rpm [Sisyphus] x86_64 autoimports
    rpm [Sisyphus] noarch autoimports
  2. Update the package index:
    # sudo apt-get update
  3. Install perl-Panda-next rpm package:
    # sudo apt-get install perl-Panda-next



See Also

Package Description
perl-Parallel-Boss-0.03-alt1.1.x86_64.rpm manage worker processes
perl-Parse-Keyword-0.09-alt2.1.x86_64.rpm DEPRECATED: write syntax extensions in perl
perl-Parse-Readelf-0.18-alt3.1.x86_64.rpm handle readelf's output with a class
perl-Parse-nm-0.09-alt4.1.x86_64.rpm Run and parse 'nm' command output with filter callbacks
perl-Passwd-Keyring-Gnome-0.3003-alt3.1.x86_64.rpm Password storage implementation based on GNOME Keyring
perl-Path-Hilbert-XS-0.003-alt3.1.x86_64.rpm XS implementation of a Hilbert Path algorithm
perl-PeekPoke-0.01-alt4.1.x86_64.rpm perl module PeekPoke
perl-Perl-Lexer-0.30-alt1.x86_64.rpm Use Perl5 lexer as a library
perl-Perl-SVCount-0.02-alt4.1.x86_64.rpm Get global count of allocated SVs
perl-Perl-Unsafe-Signals-0.03-alt3.1.x86_64.rpm Allow unsafe handling of signals in selected blocks
perl-PerlGSL-DiffEq-0.08-alt4.1.x86_64.rpm A Perlish Interface to Solving ODEs using GSL v1.15+
perl-PerlGSL-Integration-MultiDim-0.003-alt5.1.x86_64.rpm A Perlish Interface to the GSL Monte Carlo Integration Library
perl-PerlGSL-Integration-SingleDim-0.002-alt5.1.x86_64.rpm A Perlish Interface to the GSL 1D Integration Library
perl-PerlGSL-RootFinding-SingleDim-0.001-alt5.1.x86_64.rpm A Perlish Interface to the GSL 1D Root Finding Library
perl-PerlIO-bitswap-0.003-alt2.1.x86_64.rpm I/O layer to swap bits and bytes