The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl

use strict;use warnings;
use IPC::Transit;
use Getopt::Std;

my $opts = {};
getopt('P', $opts);
if($opts->{P}) {
    $IPC::Transit::config_dir = $opts->{P};
    print "Using alternative Transit config dir: $IPC::Transit::config_dir\n";
}

my $message_text = shift or die 'perl message required';
my $qname = shift or die 'qname required';
my $destination = shift;

our $message;
eval '$message = ' . $message_text;
die "the perl message passed in first argument is invalid: $@" if $@;
die "the perl message passed in first argument is empty" unless $message;
die "the perl message passed in first argument is not a reference"
    unless ref $message;
die "the perl message passed in first argument is not a HASH reference"
    unless ref $message eq 'HASH';

print IPC::Transit::send(qname => $qname, message => $message, destination => $destination), "\n";