Sign in to PrePAN

PrePAN provides a place
to discuss your modules.


Requests for Reviews Feed

IkiWiki::Plugin::purge Plugin for IkiWiki to purge changed pages from front end http cache

This is a plugin for IkiWiki.

When installed, IkiWiki will be able to interact with a front end web cache, telling it to purge changed pages from the cache with a HTTP request for each changed page.

  • This is my first module, I'm happy for any feedback.

  • I've tried to follow other modules in the same namespace, and

ssm@github 0 comments

MooX::LazyArgs Arguments to lazy attribute construction taken from constructor

A more sophisticated lazy construction, the sample code pretty much says it all. The module name is perhaps not 100% presize, it does not reflect that the lazy args come from constructor.

torbjorn@github 2 comments

Barcode::DataMatrix::PNG Graphical representations of DataMatrix barcodes, generated from the DataMatrix module

This class is used to create graphical representations of data matrix barcodes. It is an extension of the Barcode::DataMatrix class.

Potential applications include graphically oriented documents such as PDF, printable web documents, invoices, packing lists, shipping labels, etc....


I saw no other modules in Cpan that did graphical representations of these barcodes, so I made one.

There is room for improvement (which I likely will be doing) ; but everything seems to be working so far. I'd like to do further testing of the actual output + try different resolutions - see what happens. i.e.: establish the minimum and maximum resolutions that can be supported by the module + code them in.

Soon as I get my hands on a piece of test hardware for my workstation, the testing begins.

KasemOmary@github 3 comments

LWP::ConsoleLogger Easy way to get pretty debugging output to your console

I really like the logging output of Catalyst and, by extension, I'd like to see something like this easily available for LWP::UserAgent as well as the modules which subclass it (like the WWW::Mechanize) family.

Does something like this already exist? If not, I'd like to get some feedback on the name and how useful people might find it. Using something like wireshark or setting up a proxy server is not always feasible when debugging a mech script.

Something like this would be fairly trivial to write, since a lot of it could be stolen from Plack::Middleware::DebugLogging.

The content_regex param is a regex to run on the page content which will strip the header and footer from the page. It will then remove all HTML markup and display the raw content of the page to you. This makes it easier to debug page content (is this actually the page I want to be on?) etc. I could add an option to preserve markup and/or just dump the entire page contents.

The idea is that if you're watching a mech script crawl X pages, seeing the changing content per page will give you a better idea of what is going on.

oalders@github 0 comments

Redminer Perl binding to Redmine REST API

As the summary says, it's just a binding to RedMine REST API.

Yes, I'm aware of Redmine::API, but:

  1. First of all, I became aware of it when Redminer had been created and used internally within my company.
  2. Redminer uses slightly different name dispatching mechanism. Maybe someone finds it easier to use.
  3. Redminer does not depend on Moo and REST::Client. With all respect to modern Perl OOP frameworks, I do not think they are necessary in thin API wrapper modules.

igelhaus@github 2 comments

App::Prove::Plugin::Linger A plugin to prove that watches dist dir for changes and runs tests again

Synopsis pretty much says it all. Watch dist dir for changes and rerun test(s) when changed found (and syntax ok?).

Oh and the name sucks. Suggestions welcome.

torbjorn@github 2 comments

ForwardQueue Queue forwarding for Open Ticket Request System

Module for forwarding tickets from a given queue in Open Ticket Request System (OTRS - to another email address. The main use case for this module - and why I wrote it - is to move tickets from one reporting system to another via email (we run two systems and sometimes users report a problem in OTRS when they should use the other system).


  1. Is this suitable for CPAN? It's an extremely specialised module and I'm not sure how many people would have a use for it.
  2. If it is suitable for CPAN, what should it be called? My initial thought was OTRS::ForwardQueue, but to me that suggests some sort of official association with OTRS, which I want to avoid.
  3. Any other comments/suggestions? This is the first Perl module which I've written with an intention to releasing, so it's entirely possible that I've missed some conventions.

pwaring@github 2 comments

Faidx Perl extension for retrieve fasta seq quickly and lightly by cached samtools index file

new About : Create new faidx object. Usage : my $fetch = Faidx->new('ref.fa'); Args : fasta format file

getseq About : Retrieves sequence region Usage : my $seq = $fetch->getseq('chr1:1-2'); Args : bed format region 1-based corrdinate

destroy About : Destroy cached faidx struct Usage : $fetch->destroy(); Args : None

shiquan@github 2 comments

Gtk2::Ex::Linker Uses sql or an object-relational mapper to get data from a database and build a gtk2 Gui using a glade file

This module automates the process of tying data from a database to widgets on a Glade-generated form. All that is required is that you name your widgets the same as the fields in your data source.

Steps for use:

Create a xxxDataManager object that contains the rows to display
Create a Gtk2::GladeXML object 
Create a Gtk2::Ex::Linker::Form object that links the data and your form
You would then typically connect the buttons to the methods below to handle common actions such as inserting, moving, deleting, etc.

This module is the same as Gtk2::Ex::DBI and Gtk2::Ex::Datasheet::DBI except that database access can be made using Rose::Data::Object, DBIx::Class or plain SQL commands with DBI. Other ORM could be added if needed.

The developer of Gtk2::Ex::Datasheet::DBI is not interested, has no time, no need for including these change in the original modules unfortunately, so here I go

Fran├žois Rappaz

rappazf@twitter 0 comments

CPAN::LatestReleases Simple way to get details of latest developer and non-developer releases on CPAN

There currently isn't an easy way to iterate over all releases on CPAN, including developer releases.

This module will run one or two queries against MetaCPAN and aggregate the results, caching them in a local file. You'll be able to specify the expiry time of the local cache, using the notation supported by Time::Duration::Parse.

This module will give you the latest release of each dist currently on CPAN. Where the latest release is a developer release, the generated index will contain the latest developer release and the latest non-developer release.

An initial release would probably have just the release iterator, since that's what I need right now.


  • Most appropriate name for this? CPAN::Latest? CPAN::LatestReleases?
  • Is there another interface you'd like / prefer for accessing this information?
  • What's the best term for "non-developer"? Stable isn't right; Indexed is accurate but not user-friendly.

neilbowers@github 3 comments