Anna Maresova's avatar

Anna Maresova

anicka

Involved Projects and Packages

CGI::FastTemplate manages templates and parses templates replacing
variable names with values. It was designed for mid to large scale
web applications (CGI, mod_perl) where there are great benefits to
separating the logic of an application from the specific
implementation details.

Author: Jason Moore

Checkbot is a perl5 script which can verify links within a region of
the World Wide Web. It checks all pages within an identified region,
and all links within that region. After checking all links within the
region, it will also check all links which point outside of the
region, and then stop.

Checkbot regularly writes reports on its findings, including all
servers found in the region, and all links with problems on those
servers.

Checkbot was written originally to check a number of servers at
once. This has implied some design decisions, so you might want to
keep that in mind when making suggestions. Speaking of which, be sure
to check the to do file on the website for things which have been
suggested for Checkbot.

This module automatically generates accessor/mutators for your class. Most of
the time, writing accessors is an exercise in cutting and pasting.

If you make your module a subclass of Class::Accessor and declare your accessor
fields with mk_accessors() then you'll find yourself with a set of
automatically generated accessors which can even be customized!

Class::Autouse allows you to specify a class the will only load when a
method of that class is called. For large classes that might not be
used during the running of a program, such as Date::Manip, this can
save you large amounts of memory, and decrease the script load time.

This module is intended as a drop-in replacement for NEXT, supporting the same interface, but using Class::C3 to do the hard work. You can then write new code without NEXT, and migrate individual source files to use Class::C3 or method modifiers as appropriate, at whatever pace you're comfortable with.

Class::Data::Inheritable is for creating accessor/mutators to class data.
That is, if you want to store something about your class as a whole
(instead of about a single object). This data is then inherited by your
subclasses and can be overriden.

For example:

Pere::Ubu->mk_classdata('Suitcase');

will generate the method Suitcase() in the class Pere::Ubu.

This new method can be used to get and set a piece of class data.

Pere::Ubu->Suitcase('Red');
$suitcase = Pere::Ubu->Suitcase;

The interesting part happens when a class inherits from Pere::Ubu:

package Raygun;
use base qw(Pere::Ubu);

# Raygun's suitcase is Red.
$suitcase = Raygun->Suitcase;

Raygun inherits its Suitcase class data from Pere::Ubu.

Inheritance of class data works analogous to method inheritance. As long as
Raygun does not "override" its inherited class data (by using Suitcase() to
set a new value) it will continue to use whatever is set in Pere::Ubu and
inherit further changes:

# Both Raygun's and Pere::Ubu's suitcases are now Blue
Pere::Ubu->Suitcase('Blue');

However, should Raygun decide to set its own Suitcase() it has now
"overridden" Pere::Ubu and is on its own, just like if it had overriden a
method:

# Raygun has an orange suitcase, Pere::Ubu's is still Blue.
Raygun->Suitcase('Orange');

Now that Raygun has overridden Pere::Ubu futher changes by Pere::Ubu no
longer effect Raygun.

# Raygun still has an orange suitcase, but Pere::Ubu is using Samsonite.
Pere::Ubu->Suitcase('Samsonite');

This module is intended to provide a general-purpose date and datetime
type for perl. You have a Class::Date class for absolute date and
datetime and have a Class::Date::Rel class for relative dates.

You can use "+", "-", "<" and ">" operators as with native perl data
types.

This module provides an XS implementation for portions of the Class::Load
manpage. See the Class::Load manpage for API details.

Class::Multimethods -- Supports multimethods and subroutine overloading
in Perl.

This is the "Class::Singleton" module. A Singleton describes an object
class that can have only one instance in any system. An example of a
Singleton might be a print spooler or system registry. This module
implements a Singleton class from which other classes can be derived. By
itself, the "Class::Singleton" module does very little other than manage
the instantiation of a single object. In deriving a class from
"Class::Singleton", your module will inherit the Singleton instantiation
method and can implement whatever specific functionality is required.

For a description and discussion of the Singleton class, see "Design
Patterns", Gamma et al, Addison-Wesley, 1995, ISBN 0-201-63361-2.

Author: Andy Wardley

It's possible to accidentally inherit an AUTOLOAD method. Often this
will happen if a class somewhere in the chain uses AutoLoader or
defines one of their own. This can lead to confusing error messages
when method lookups fail.

Sometimes you want to avoid this accidental inheritance. In that case,
inherit from Class::WhiteHole. All unhandled methods will produce
normal Perl error messages.

This module provides a general-purpose clone function to make deep copies
of Perl data structures. It calls itself recursively to copy nested hash,
array, scalar and reference types, including tied variables and objects.

The clone() function takes a scalar argument to copy. To duplicate arrays
or hashes, pass them in by reference:

my $copy = clone(\@array); my @copy = @{ clone(\@array) };
my $copy = clone(\%hash); my %copy = %{ clone(\%hash) };

The clone() function also accepts an optional second parameter that can be
used to limit the depth of the copy. If you pass a limit of 0, clone will
return the same value you supplied; for a limit of 1, a shallow copy is
constructed; for a limit of 2, two layers of copying are done, and so on.

my $shallow_copy = clone( $item, 1 );

To allow objects to intervene in the way they are copied, the clone()
function checks for a couple of optional methods. If an object provides a
method named 'clone_self', it is called and the result returned without
further processing. Alternately, if an object provides a method named
'clone_init', it is called on the copied object before it is returned.

This module implements some sane defaults for Perl programs, as defined
by two typical (or not so typical - use your common sense) specimens of
Perl coders. In fact, after working out details on which warnings and
strict modes to enable and make fatal, we found that we (and our code
written so far, and others) fully agree on every option, even though we
never used warnings before, so it seems this module indeed reflects a
"common" sense among some long-time Perl coders.

The basic philosophy behind the choices made in common::sense can be
summarised as: "enforcing strict policies to catch as many bugs as
possible, while at the same time, not limiting the expressive power
available to the programmer".

Two typical examples of how this philosophy is applied in practise is
the handling of uninitialised and malloc warnings:

*uninitialised*
"undef" is a well-defined feature of perl, and enabling warnings for
using it rarely catches any bugs, but considerably limits you in
what you can do, so uninitialised warnings are disabled.

*malloc*
Freeing something twice on the C level is a serious bug, usually
causing memory corruption. It often leads to side effects much later
in the program and there are no advantages to not reporting this, so
malloc warnings are fatal by default.

Unfortunately, there is no fine-grained warning control in perl, so
often whole groups of useful warnings had to be excluded because of a
single useless warning (for example, perl puts an arbitrary limit on the
length of text you can match with some regexes before emitting a
warning, making the whole "regexp" category useless).

What follows is a more thorough discussion of what this module does, and
why it does it, and what the advantages (and disadvantages) of this
approach are.

Config::IniFiles provides a way to have readable configuration files
outside your Perl script. Configurations can be imported (inherited,
stacked,...), sections can be grouped, and settings can be accessed from a
tied hash.

Convert::ASN1 encodes and decodes ASN.1 data structures using BER/DER
rules.

Convert::BER is a Perl object class implementation for encoding and
decoding objects as described by ITU-T standard X.209 (ASN.1) using
Basic Encoding Rules (BER).

WARNING this module is no longer supported, See Convert::ASN1

Perl module to read TNEF files

A Perl interface to the uulib library

Many online services that are centered around CPAN attempt to associate
multiple uploads by extracting a distribution name from the filename of the
upload. For most distributions this is easy as they have used
ExtUtils::MakeMaker or Module::Build to create the distribution, which
results in a uniform name. But sadly not all uploads are created in this
way.

'CPAN::DistnameInfo' uses heuristics that have been learnt by the
http://search.cpan.org/ manpage to extract the distribution name and
version from filenames and also report if the version is to be treated as a
developer release

The constructor takes a single pathname, returning an object with the
following methods

* cpanid

If the path given looked like a CPAN authors directory path, then this
will be the the CPAN id of the author.

* dist

The name of the distribution

* distvname

The file name with any suffix and leading directory names removed

* filename

If the path given looked like a CPAN authors directory path, then this
will be the path to the file relative to the detected CPAN author
directory. Otherwise it is the path that was passed in.

* maturity

The maturity of the distribution. This will be either 'released' or
'developer'

* extension

The extension of the distribution, often used to denote the archive type
(e.g. 'tar.gz')

* pathname

The pathname that was passed to the constructor when creating the object.

* properties

This will return a list of key-value pairs, suitable for assigning to a
hash, for the known properties.

* version

The extracted version

openSUSE Build Service is sponsored by