Steven Haryanto > Unixish > Unixish

Download:
Unixish-1.0.4.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 1.0.4   Source  

NAME ^

Unixish - Data transformation framework, inspired by Unix toolbox philosophy

VERSION ^

version 1.0.4

SPECIFICATION VERSION ^

 1.0

ABSTRACT ^

This document specifies Unixish, Perl framework for data processing (transformation, conversion, whatever) using the tried-and-true Unix toolbox philosophy. For the implementation, see Data::Unixish.

STATUS ^

Early draft. The 1.0 series does not guarantee full backward compatibility between revisions, so caveat implementor. However, major incompatibility will bump the version to 1.1.

PHILOSOPHY ^

The Unix philosophy says a program should do only one thing and do it well. Problem is solved by sewing or chaining together a sequence of small, specialized programs. From Douglas McIlroy, the original developer of Unix pipelines:

 This is the Unix philosophy: Write programs that do one thing and do it well.
 Write programs to work together. Write programs to handle text streams, because
 that is a universal interface.

In Unixish, programs translate to functions. Unixish is essentially a set of guidelines and tools on how to write such functions.

The goal of the framework is to let users easily create functions that can be used as normal Perl functions operating on arrays and streams (filehandles), as well as functions that can become Unix command-line utilities.

GLOSSARY ^

Data::Unixish is the Perl implementation.

dux is a short notation for Data::Unixish.

GUIDELINES ^

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

A well-written dux function can be readily transformed into a usual Unix command-line utility.

NAMESPACE ORGANIZATION ^

Unixish is the specification.

Data::Unixish is the implementation.

Each dux function should be written in all-lowercase name, put under Data::Unixish::FUNCTION_NAME package. The function itself is put in that package with the same name. For example the Data::Unixish::date package contains the Data::Unixish::date::date function.

A further subpackaging is allowed, for example: Data::Unixish::English::count_syllables.

App::dux is a utility to access dux functions via the command-line.

SEE ALSO ^

Rinci and Rinci::function, another specification to leverage functions.

Log::Any.

Similar projects on CPAN

AUTHOR ^

Steven Haryanto <stevenharyanto@gmail.com>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2013 by Steven Haryanto.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: