Sign in to PrePAN

PrePAN provides a place
to discuss your modules.


Requests for Reviews Feed

SVG::Timeline::Compact Compact SVG Timeline Drawing Module

This module originated because SVG::Timeline did not meet my requirements.

I communicated with the author and went through the code with an intention of contributing to it, but realized that it follows a different design philosophy and use case.

The major difference with SVG::Timeline are as follows

  • Start and End are actual DateTime Objects.
  • Auto-calculation of timescale ( min, hours, days, months, years ) based on the events and grid size.
  • Auto Layout to fit multiple events on same row.
  • Tooltips.

jahagirdar@github 0 comments

DBIx::DA A CRUD wrapper for databasess

I am right now looking to put it in a differnt namespace.

As I have come to relaise that DBIx is not the place for it as it does not extend DBI at all or wrap very muuch.

Perhaps becuse is will have many Modules under it does it need its own Brand?




Was thinking of thinking of sticking it under


but that is suppose to be for Debug (tough most of the moduels in that space have to do with DB)


might not be a good place as that really deals with the data itself not a DB

Any suggestions??

byterock@github 3 comments

Net::ISC::DHCPClient Perl module for reading ISC dhclient leases

The library is intended for determining if a network interface gets its information via DHCP and the known details of the leases issued to the interface.

HQJaTu@github 0 comments

Perl::Critic::Policy::ProhibitSmartmatch Perl::Critic policies which help to avoid both explicit and implicit smartmatching

holcapek@github 1 comment

Device::Network::ConfigParser Network Device Configuration Parser

This module is a harness to take in network device (think switches, routers, etc) configuration, parse them, and output them in specified formats.

As an example, it takes an Cisco ASA config, parse the objects, object-groups, NATs, etc.

The harness is used by the command line utility 'ncp'.

The specific parsers and output drivers are dynamically loaded based on the command line arguments.

gregfoletta@github 2 comments

IO::ReadHandle::Chain Chain read handles

This module provides a mechanism to chain any number of data sources together for reading through a single file handle. This is convenient if you have multiple sources of which some are very large and you need to pretend that they are all inside a single source.

One application is to pretend to wrap a huge file of XML elements in a root element so that it becomes acceptable to XML parsers such as XML::Twig, without actually having to create a modified copy of the huge file:

use IO::ReadHandle::Chain;
use XML::Twig;

$prefix = '<wrapper>';
$suffix = '</wrapper>';
$cfh = IO::ReadHandle::Chain->new(\$prefix, 'huge.xml', \$suffix);
$twig = XML::Twig->new( twig_handlers => { ... } );

NOTE: Read < for &lt; and > for &gt; above. I cannot figure out the Markdown to make them show up correctly.

LouisStrous@github 1 comment

WebApp-Snippy minimalist note-taking web application

A demonstration Perl Dancer CRUD web application written for my capstone course at Independence University

mjgardner@github 0 comments

Sort::Naturally::ICU Perl extension for human-friendly ("natural") sort order, which using ICU library for locale aware sorting.




The following example demonstrates default way to locale aware sorting:

use POSIX;

my @list = ('a'..'c', 'A'..'C');

setlocale(POSIX::LC_ALL, 'en_US.utf8');
my @result = sort @list;
# @result contains  a, A, b, B, c, C

setlocale(POSIX::LC_ALL, 'en_CA.utf8');
@result = sort @list;
# @result contains  A, a, B, b, C, c

The problem is that not all Unix-like OSs completely support POSIX, in fact only Linux fully POSIX compatible. Therefore you can't use above approach in Mac OS or FreeBSD. This module is designed to solve this issue.

To be able to sort a list with an arbitrary locale at any platform it's necessary to use the sorted function with a locale keyword argument. locale should be LDML locale identifier:

use Sort::Naturally::ICU qw/sorted/;

my $list = ['a'..'c', 'A'..'C'];

my $result_us = sorted($list, locale => 'en-US-u-va-posix');
# $result_us contains A, B, C, a, b, c

my $result_ca = sorted($list, locale => 'en-CA-u-va-posix');
# $result_ca contains a, A, b, B, c, C

the_serval@twitter 0 comments

Plack::App::URLMux PSGI/Plack component for dispatching multiple applications based on URL path and patterns

The module is designed for multiplexing applications by URL path and patterns. This module is based on Plack::App::URLMap, but it optimized to dispatching a lot of URLs without performance regression. Additionally this module provide the ability to assign routing rules using URL patterns with named parameters. The format of parameter consist of ':' followed by parameter name and quantifier which is the same as for regexp expressions.

The idea was in that URL in RFC1738 for HTTP defined as hierarchical resource locator with '/' as delimeter and the package splits url-path on this parts, searches the application by them in mapped search tree and fills the matched named patters. This module defines value of a named parameter as one o more parts of the url-path (hsegment in RFC terms) in array context and returns list of matched parameters in PSGI/Plack environment 'plack.urlmux,params.url' as array of name and value pairs.

The namespace for Plack additional modules can be used for components as Plack::App and for middleware as Plack::Middleware, so I have chosen the Plack::App::URLMux name. I send a email to author of Plack modules about naming the module and did not receive feedback, so I decide to write about the package here.

I don`t like the idea to implement a URL multiplexer as regexp expression URL parser as in (Python dispatcher)[] for example, due its performance issues for a lot of URL rules. This module solves the performance problem by simplify the regexp expressions to named patterns and operates more larger constructions - url-path segments.

Any suggestions, comments and criticism are welcome.

AlexBurnes@github 0 comments

Convert::Maker Make a conversion generator for fixed keys

A conversion generator which outputs C code. The C code output converts hash keys to values in the style of Data::Munge's list2re or lex. Construct automata to translate a fixed list of inputs into a certain set of outcomes.

The projected use of this is in creating very fast converters for translating symbol tables into other symbols. For example, to convert "ASCII IPA" into Unicode symbols very rapidly, to convert Chinese characters into Pinyin, etc.

benkasminbullock@github 0 comments