Sign in to PrePAN

PrePAN provides a place
to discuss your modules.


Requests for Reviews Feed

Data::Lookup Neat lookup for complex data structures without any autovivification

Hey Perlers!

I've come up with my own module for lookuping data structures in one single line without autovivification.

Comprehensive examples could be found in test.t in the repository.

Here, I found some alternatives:

But I find my module more 'lightweight' and neat.

What do you think? Is it worth publishing?

mat90x@github 3 comments

Log:Selective Selective logging to the console

This module is a logger with adjustable verbosity for commandline programs. Different verbosity levels can have different colors and styles applied and specific functions or methods can get extra verbosity. Message colors and styles are fully user-definable.

Additional functions are provided for displaying summaries of all warnings or errors encountered. Stack traces can been shown on demand or whenever there are warnings or errors.

This is a strictly functional module (no use of objects or methods). Tests have yet to be written.
Full documentation is available here and usage examples can be found in the examples/ directory.


Alex-Kent@github 0 comments

Geo::Index Geographic indexer

Geo::Index is a module for creating in-memory geographic point indices. Once indexed, fast searches can be run. The module supports search by radius, by bounding box and by proximity.

This will be my first CPAN release so I welcome any feedback you might have. The module has full documentation and test cases. Have I missed anything?

As of v0.0.4 XS is being used directly instead of via Inline::C. Can anyone comment on whether the way I wrote the XS support code is correct for use in a module?

The following was in regards to v0.0.3:

One specific thing that I'd value feedback on is my use of Inline::C. My code does have automatic fallbacks in place for when C isn't available and includes instructions for using it (the C code) in a server environment. Is there anything else I should be aware of when using it in a module?


Alex-Kent@github 4 comments

SQL::Tidy Beautifies SQL code

This is a module that beautifies SQL code.

talexb@github 0 comments

Dist-Zilla-Plugin-ReleaseToDarkpan Dist::Zilla plugin to release to a local "darkpan"

Sometimes we create a Perl module for our private use that we are not ready or not able to release to CPAN. The utility cpan-mirror-tiny lets us create a private CPAN repositoy on our local filesystem to store such packages we can then use in our own projects.

This plugin gives you the ability to automate this task when you run "dzil release". Use this plugin instead of UploadToCPAN.

lsiden@github 2 comments

App::PhotoDB App to manage a collection of film cameras & lenses

PhotoDB is an attempt to create a database for film photography that can be used to track cameras, lenses, accessories, films, negatives and prints, to fully catalogue a collection of photographic equipment as well as the pictures that are made with them. Read the CONCEPTS document for full details on the capabilities of PhotoDB.

PhotoDB can also write EXIF tags to scanned images taken with film cameras, so they appear in your digital photo library with the correct metadata (time, date, focal length, geotag, etc). At the moment, the PhotoDB project is unfinished and the code continues to change unpredictably. Look for a tagged release in the future!

The heart of PhotoDB is the MySQL/MariaDB backend database schema. This is the most complete part of the project and describes all the data that is recorded. The application is an interactive command-line tool to make it easier to add and edit data in the database. It is not a graphical interface or web application (but someone with the right enthusiasm and skills could use the logic I've already written to make a basic graphical interface quite quickly).

PhotoDB runs only on Linux systems and there are installation instructions for Fedora and Ubuntu Linux. However it should be able to run on pretty much any Linux distribution and MacOS as the Perl dependencies are portable. Soon there will be Docker support which will simplify installation and allow PhotoDB to run anywhere, including on Windows. The application is not quite feature-complete, so for now you may also need to edit parts of the database directly in some circumstances. You can access the raw database using the MySQL command line, by using an application such as MySQL Workbench or phpMyAdmin to obtain a GUI for manipulating the tables.

djjudas21@github 0 comments

Device::Yeelight Controller for Yeelight smart devices

Recently I discovered some smart light bulbs from Yeelight which have pretty well documented API, unfortunately there is no Perl module to control them (similar, however not compatible, module is Device::Hue).

This Perl module implements local device discovery via Yeeling specific SSDP protocol and sending commands via control protocol in the JSON format.

baierjan@github 0 comments

on::demand Postpone loading a module until it's actually used

Deferred loading of modules with large dependency footprint may improve test script and/or command-line tools load times.

Autoload is used. No performance penalty is imposed, aside from loading the module on the first call to it.

Of course, the drawback is that compile time errors (if any) are delayed until unexpected. Better check that the modules in question actually exist and load correctly.

dallaylaen@github 3 comments

PostScript::PSjoin wrapper around the script for concatenating postscript documents

This module is a wrapper around the standalone Perl script "" by Tom Sato. All I did was the minimal set of changes to allow Tom's script to work as a Perl subroutine.

I just realized that the synopsis and description don't explain the handful of options; I'll add those.

n8ur@github 1 comment

Text::Parser Bare text parser, simplifies text parsing

Text::Parser is a bare-bones text parsing class. It is ignorant of the text format, and cannot recognize any grammars, but derived classes that inherit from it can specify this. They can do this usually by overriding just one of the methods in this class.

Future versions are expected to include progress-bar support, parsing text from sockets, or a chunk of memory. All these software features are text-format independent and can be re-used in parsing any text format. Derived classes of Text::Parser will be able to take advantage of these features.

balajirama@github 0 comments