Sample .zwgc.desc.pl file
# Zwgc.desc.pl
#
# The following variables will be set before your script is called
# They will all be reset at a new incoming zephyr
# All other variables remain persistent between zephyrs
#
# $number_of_fields, $version, $zephyr_version, $class, $instance,
# $opcode, $default, $recipient, $fullsender, $port, $kind, $auth,
# $sender, $message, $error, $fromhost, $realm, $user
#
# These have the same meaning as they used to in normal .zwgc.desc
# Ignore pings
exit if $opcode eq "PING";
# Get the fields
(@fields) = Zion::fields();
# Increment the zephyr counter
$n++;
# Format the zephyr header
$z = <<EOZ;
Zephyr $n - $time $date -
[$class][$instance] \@b($sender)
$fields[0]
EOZ
# Add all the rest of the fields to the body
$z .= join("\n", @fields[1..$#fields]);
# Display the zephyr
Zion::put($z);