linux-libusb takes advantage of FreeBSD libusb(8) library, which got
prepared to work correctly within linux(4) emulation layer. It lets
you to take Linux binary linked with libusb.so and use it on
FreeBSD.
Additional information: This port has been prepared under FreeBSD
with kern.osreldate = 1000510. It relies on the fact the libusb(8)
API seems to be stable and no changes have been made to internal API
for a long time. If this assumption isn't true, port won't work.
Please submit bug report to the port maintainter in that case.
This library contains functionality for parsing and pretty-printing
S-expressions. In addition to that it contains an extremely useful
preprocessing module for Camlp4, which can be used to automatically
generate code from type definitions for efficiently converting
OCaml-values to S-expressions and vice versa. In combination with the
parsing and pretty-printing functionality this frees the user from
having to write his own I/O-routines for data structures he defines.
Possible errors during automatic conversions from S-expressions to
OCaml-values are reported in a very human-readable way. Another module
in the library allows you to extract and replace sub-expressions in
S-expressions.
This module generates accessors for your class in the same spirit as
Class::Accessor does. While the latter deals with accessors for scalar values,
this module provides accessor makers for arrays, hashes, integers, booleans,
sets and more.
As seen in the synopsis, you can chain calls to the accessor makers. Also,
because this module inherits from Class::Accessor, you can put a call to one of
its accessor makers at the end of the chain.
The accessor generators also generate documentation ready to be used with
Sub::Documentation.
Config::Tiny is a perl class to read and write .ini style configuration
files with as little code as possible, reducing load time and memory
overhead. Memory usage is normally scoffed at in Perl, but in my
opinion should be at least kept in mind.
This module is primarily for reading human written files, and anything
we write shouldn't need to have documentation/comments. If you need
something with more power, move up to Config::Simple, Config::General or
one of the many other Config:: modules.
The types provided with Moose are by design global. This package helps you to
organise and selectively import your own and the built-in types in libraries.
As a nice side effect, it catches typos at compile-time too.
However, the main reason for this module is to provide an easy way to not have
conflicts with your type names, since the internal fully qualified names of the
types will be prefixed with the library's name.
This module will also provide you with some helper functions to make it easier
to use Moose types in your code.
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.
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 GitDB project implements interfaces to allow read and write access to
git repositories. In its core lies the db package, which contains
all database types necessary to read a complete git repository. These are
the LooseObjectDB, the PackedDB and the ReferenceDB which are combined
into the GitDB to combine every aspect of the git database.
For this to work, GitDB implements pack reading, as well as loose object
reading and writing. Data is always encapsulated in streams, which allows
huge files to be handled as well as small ones, usually only chunks of
the stream are kept in memory for processing, never the whole stream at
once.