Author image Simon Bertrang


Pipeworks - Pipeline Processing Framework


  use Pipeworks::Pipeline::MyDoc;
  use Pipeworks::Message::GetBody;
  my $line = Pipeworks::Pipeline::MyDoc->new;
  # same as Pipeworks::Stage::FetchURL->new( ... )
  $line->register( 'FetchURL' );
  $line->register( 'GetDocumentBody' );
  $line->register( sub { my $msg = shift; warn( "body:\n" . $msg->body ) } );
  # same as Pipeworks::Message::GetBody->new( ... )
  my $message = $line->message( GetBody => {
    url => 'http://localhost/',
  } );
  my $result = $line->process( $message );


This is a message oriented pipeline processing framework to enable separation of concerns, organization of individual functionality and improve code-reuse though aspect orientation.

It simply allows to define and organize pipelines that process messages in multiple steps and return a result.


Originally the basic idea is inspired by UNIX concepts. There was a lot of thinking how to represent a similar model in programming without losing important benefits that UNIX provides. When Steve Bate wrote a blog post about Messaging as a Programming Model things came together, started to make sense and code began to materialize this implementation.

SEE ALSO,,,,,,


Simon Bertrang <>


Copyright (C) 2013 by Simon Bertrang

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