The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Agent::Message - the Transportable Agent Perl module


  use Agent;

  my $msg = new Agent::Message(
        Body      => [ 'foo bar', 'baz' ],
        Transport => TCP,
        Address   => ''



This module is meant to standardize agent communications over a number of different transport mediums (see Agent::Transport).


new( [%args] )

new makes a nice new Message object with all the arguments you pass it. It understands the following parameters:

        Body => $body,
     [  Transport => $medium,
        Address => $destination,
        SendNow => $true_false   ]

This instantiates the class with only one destination (multiple destinations are possible - see below). If SendNow is true, the message is dispatched ASAP.


$msg->body( [@value] )

Sets/gets the body of the message.

$msg->add_dest( $transport, $addr1 [, $addr2 ...] )

Adds the destination address to the list of destinations within said medium; adds the medium if need be.

$msg->del_dest( $transport, $addr1 [, $addr2 ...] )

Removes the destination address from the list of destinations within said medium. If last destination in medium, removes medium also.

$msg->del_transport( $transport )

Removes the specified transport medium and all of its destinations.

$msg->send( %args )

Sends the message body in all transport mediums. Passes \%args to all transport mediums when sending. Returns an array of results returned by each transport medium the message was sent in.


$msg->del_dest and $msg->del_transport don't work; I'm too lazy.


Agent, Agent::Transport, the example agents.


Steve Purkis <>


Copyright (c) 1998 Steve Purkis. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Whoever invented mail.