One recurring problem in modules that use Scalar::Util's weaken function is
that it is not present in the pure-perl variant.
While this isn't necessarily always a problem in a straight CPAN-based Perl
environment, some operating system distributions only include the pure-Perl
versions, don't include the XS version, and so weaken is then "missing" from
the platform, despite passing a dependency on Scalar::Util successfully.
Most notably this is RedHat Linux at time of writing, but other come and go
and do the same thing, hence "recurring problem".
The normal solution is to manually write tests in each distribution to ensure
that weaken is available.
This restores the functionality testing to a dependency you do once in your
Makefile.PL, rather than something you have to write extra tests for each
time you write a module.
It should also help make the package auto-generators for the various
operating systems play more nicely, because it introduces a dependency that
they have to have a proper weaken in order to work.
SVN::Simple::Edit wraps the subversion delta editor with a perl
friendly interface and then you could easily drive it for describing
changes to a tree.
A common usage is to wrap the commit editor, so you could make commits
to a subversion repository easily.
SVN::Statistics - perl module to create subversion statistics
SVN::Web provides a web interface to subversion repositories. You can
browse the tree, view history of a directory or a file, see what's
changed in a specific revision, track changes with RSS, and also view
diff.
SVN::Web also tracks the branching feature (node copy) of subversion,
so you can easily see the relationship between branches.
Term::ANSIScreen is an Term::ANSIColor clone with support for screen mode,
cursor control and keyboard mapping sequences.
Sah is a schema language for validating data structures. In the 0.9.0 series,
there will probably still be incompatible syntax changes between revision before
the spec stabilizes into 1.0 series.
Unlike the tie-based Data::Lazy, this module operates on values, not
variables. Therefore, assigning into $dv and $lv above will simply
replace the value, instead of triggering a STORE method call.
Also, thanks to the overload-based implementation, this module is
about 2x faster than Data::Lazy.
This module calls an external editor with an optional text message and
returns what was input as a file handle. By default, the EDITOR
environment variable will be used, otherwise vi.
Scalar::Does has long been noted that Perl would benefit from a does() built-in.
A check that ref($thing) eq 'ARRAY' doesn't allow you to accept an object that
uses overloading to provide an array-like interface.
This module lets you defer actions at run-time that will take place when
the control flow returns into an upper scope. Currently, you can:
* hook an upper scope end with "reap" ;
* localize variables, array/hash values or deletions of elements in
higher contexts with respectively "localize", "localize_elem" and
"localize_delete" ;
* return values immediately to an upper level with "unwind", and know
which context was in use then with "want_at".