Project::Gantt provides the ability to easily draw Gantt charts for
managing the schedules of projects and many other things.
Gantt charts provide a simple, easy to comprehend, visual
representation of a schedule.
Project::Libs automatically adds directories that may contain modules
which a project depends on.
Qudo is simple and extensible job queue manager system.
Your application can insert job into DB ,that is managed by Qudo. And
Your application can get & execute job by Qudo worker. Qudo
corresponds to deal with DB as MySQL and SQLite.
If you add Hook Point around job's working method, you can add it
easily and many point of work milestone. Qudo is consided about
adding Hook Point Flexibility.
This is a rather simplistic lexer and tokenizer for the RPSL language.
It currently does not validate the object in any way, it just tries
(rather hard) to grab the biggest ammount of information it can from the
text presented and place it in a Parse Tree (that can be passed to other
objects from the RPSL namespace for validation and more RFC2622 related
functionality).
RRDTool::OO is an object-oriented interface to Tobi Oetiker's round robin
database tool rrdtool. It uses rrdtool's RRDs module to get access to rrdtool's
shared library.
RRDTool::OO tries to marry rrdtool's database engine with the dwimminess and
whipuptitude Perl programmers take for granted. Using RRDTool::OO abstracts
away implementation details of the RRD engine, uses easy to memorize named
parameters and sets meaningful defaults for parameters not needed in simple
cases.
Rcs::Agent is a perl module for manipulating RCS archives. It provides
an object-oriented interface to the RCS commands rcs(1), rcsdiff(1),
ci(1) and co(1), in addition to providing easy access to revision
information contained in the RCS archive file.
This module corrects the speed problem, at least with respect to scalar
variables. When Readonly::XS is installed, Readonly uses it to access the
internals of scalar variables. Instead of creating a scalar variable object and
tying it, Readonly simply flips the SvREADONLY bit in the scalar's FLAGS
structure.
Readonly arrays and hashes are not sped up by this, since the SvREADONLY flag
only works for scalars. Arrays and hashes always use the tie interface.
Programs that you write do not need to know whether Readonly::XS is installed or
not. They should just "use Readonly" and let Readonly worry about whether or not
it can use XS. If the Readonly::XS is present, Readonly will be faster. If not,
it won't. Either way, it will still work, and your code will not have to change.
Your program can check whether Readonly.pm is using XS or not by examining the
$Readonly::XSokay variable. It will be true if the XS module was found and is
being used. Please do not change this variable.
This is a facility for creating non-modifiable variables. This is
useful for configuration files, headers, etc. It can also be useful as
a development and debugging tool, for catching updates to variables that
should not be changed.
Since Perl allows us to provide a subroutine reference or a method name to the
-> operator when used as a method call, and a subroutine doesn't require the
invocant to actually be an object, we can create safe versions of isa, can and
friends by using a subroutine reference that only tries to call the method if
it's used on an object.
e.g. my $isa_Foo = $maybe_an_object->$_call_if_object(isa => 'Foo');
Note that we don't handle trying class names, because many things are valid
class names that you might not want to treat as one (like say "Matt") - the
is_module_name function from Module::Runtime is a good way to check for
something you might be able to call methods on if you want to do that.
A lot of Perl code ends up with scalars having either a single scalar value
or a reference to an array of scalar values. In order to handle the two
conditions, one must check for what is in the scalar value before getting on
with one's task. Ie:
$text_scalar = 'text';
$aref_scalar = [ 1.. 5 ];
print ref($text_scalar) ? (join ':', @$text_scalar) : $text_scalar;
And this module is designed to address just that!