Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Thursday November 14, 2002
04:24 PM

Fetch a single journal entry

[ #8952 ]

I continue to improve my terminal use.perl reader. I needed a bit to fetch a single entry. It is my previous script which the looping stuff cut out and a command line argument added. Of course, this should be a module, but I don't want to write another module at the moment. Let someone else do that. :)

#!/usr/bin/perl -w
use strict;
=head1 NAME
use_journal - get a single entry from a use.perl journal
% use_journal ID
This script fetches a single journal entry by its entry ID.
I wrote it so other programs could shell out to it to fetch
an entry.
=head1 AUTHOR
brian d foy, E<lt>bdfoy@cpan.orgE<gt>
Copyright 2002, brian d foy, All rights reserved.
You may use this script under the same terms as Perl itself
use File::Spec::Functions;
use SOAP::Lite;
use Text::Template;
my $id          = $ARGV[0];
die "The entry ID must be a string on digits only\n" if $id =~ m/\D/;
my $Debug       = $ENV{USE_PERL_JOURNAL_DEBUG}    || 0;
my $Template    = $ENV{USE_PERL_JOURNAL_TEMPLATE} ||
    catfile( $ENV{HOME}, ".journal.tmpl" );
die "Could not open template file\n" unless -r $Template;
my $host        = '';
my $uri         = "http://$host/Slash/Journal/SOAP";
my $proxy       = "http://$host/";
my $journal  = SOAP::Lite->uri( $uri )->proxy( $proxy );
my $template = Text::Template->new( SOURCE => $Template );
my $hash  = $journal->get_entry( $id )->result;
die "No journal entry for $id\n" unless $hash;
print $template->fill_in( HASH => { entry => $hash } );