Progress bars are handy - they tell you how much work has been done, how much
is left to do and estimate how long it will take. But they can be fiddly! This
module does the right thing in almost all cases in a really convenient way.
It wraps Term::ProgressBar::Quiet so there is no output unless the code is
running interactively - lets you put them in cron scripts.
It deals with minor updates - only refreshes the screen when it will change
what the user sees so it is efficient.
It completes the progress bar when the progress object is destroyed (explicitly
or by going out of scope) - no more '99%' done.
Sometimes you want to make sure that your "faster" algorithm really is faster
than the old way. This lets you check. It might also be useful to check that
your super whizzo XS or Inline::C version is actually faster.
This module is based on the standard Benchmark module. If you have lots of
timings to compare and you don't want to keep running the same benchmarks all
the time, you can pass in a result object from Benchmark::timethis() instead of
sub routine reference.
Test::Modern provides the best features of Test::More, Test::Fatal,
Test::Warnings, Test::API, Test::LongString, and Test::Deep, as well as ideas
from Test::Requires, Test::DescribeMe, Test::Moose, and Test::CleanNamespaces.
Test::Modern also automatically imposes strict and warnings on your script, and
loads IO::File. (Much of the same stuff Modern::Perl does.)
Although Test::Modern is a modern testing framework, it should run fine on
pre-modern versions of Perl. It should be easy to install on Perl 5.8.9 and
above; and if you can persuade its dependencies to install (not necessarily
easy!), should be OK on anything back to Perl 5.6.1.
Class names in Perl often don't sound great when spoken, or look good
when written in prose. For this reason, we tend to say things like
"customer" or "basket" when we are referring to My::Site::User::Customer
or My::Site::Shop::Basket. We thought it would be nice if our classes
knew what we would prefer to call them.
This module will add a moniker (and plural_moniker) method to UNIVERSAL,
and so to every class or module.
So, if $ob->isa("Big::Scary::Animal"), moniker will return "animal";
$ob->isa("Cephalopod::Octopus"), plural_moniker will return "octopuses".
The accessors pragma lets you create simple accessors at compile-time.
This saves you from writing them by hand, which tends to result in cut-n-paste
errors and a mess of duplicated code. It can also help you reduce the amount
of unwanted direct-variable access that may creep into your code base when
you're feeling lazy. accessors was designed with laziness in mind.
Method-chaining accessors are generated by default. This may be changed in
future versions! If you want backwards compatibility use accessors::chained
and wait until the dust settles.
See accessors::classic for accessors that always return the current value if
you don't like method chaining.
Xporter provides EXPORT functionality similar to Exporter with some different
rules to simplify common cases.
The primary difference, in Xporter is that the default EXPORT list remains the
default EXPORT list unless the user specifically asks for it to not be included,
whereas in Exporter, asking for any additional exports from the EXPORT_OK list,
clears the default EXPORT list.
Xporter makes it easy to reset or clear the default so that choice is left to
the user.
To reset the default EXPORT list to empty, a bare minus ('-') or logical-not
sign ('!') is placed as the first parameter in the client's import list.
The pip ("Perl Installation Program") console application is used
to install Perl distributions in a wide variety of formats, both
from CPAN and from external third-party locations, while supporting
module dependencies that go across the boundary from third-party
to CPAN.
Using pip you can install CPAN modules, arbitrary tarballs from
both the local file-system or across the internet from arbitrary
URIs.
You can use pip to ensure that specific versions of CPAN modules
are installed instead of the most current version.
This package is a modified version of Doug Lea's malloc-2.8.3
implementation adapted for multiple threads, while trying to
avoid lock contention as much as possible.
As part of the GNU C library, the source files may be available under
the GNU Library General Public License (see the comments in the
files). But as part of this stand-alone package, the code is also
available under the (probably less restrictive) conditions described
in the file 'COPYRIGHT'. In any case, there is no warranty whatsoever
for this package.
This release was partly funded by Pixar Animation Studios.
Ponscripter is an interpreter for visual-novel-type games, derived from
the NScripter design but modified significantly to improve support for
Western languages (at the cost of diminished support for Japanese).
Ponscripter is a fork of ONScripter-En that drops any attempt to remain
in synch with the upstream source code, and instead concentrates on
providing the best possible support for Western languages. It is no
longer fully NScripter-compatible, but remains an easy target to port
NScripter games to when localising them.
This fork takes advantage of SDL2 and improves Steam integration.
This package provides semi-portable access to hardware provided atomic memory
operations. These might allow you to write code:
- That does more interesting things in signal handlers
- Makes more effective use of multiprocessors by allowing you to write
clever lock-free code. Note that such code is very difficult to get
right, and will unavoidably be less portable than lock-based code. It
is also not always faster than lock-based code. But it may occasionally
be a large performance win
- To experiment with new and much better thread programming paradigms, etc.
For details and licensing restrictions, please see the documentation.