[8679] in Perl-Users-Digest
Perl-Users Digest, Issue: 2295 Volume: 8
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Apr 10 22:07:34 1998
Date: Fri, 10 Apr 98 19:00:31 -0700
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Perl-Users Digest Fri, 10 Apr 1998 Volume: 8 Number: 2295
Today's topics:
ANNOUNCE Mail::Folder v0.07 <kjj@pobox.com>
ANNOUNCE: DBD::DB2 0.66 ()
ANNOUNCE: "Bit::Vector" 5.2 (Steffen Beyer)
ANNOUNCE: cpan-upload 1.2 (Neil Bowers)
ANNOUNCE: Date::Manip-5.31 (Sullivan N. Beck)
ANNOUNCE: Net::xAP (and friends) v0.1 <kjj@pobox.com>
ANNOUNCE: Text::MetaText version 0.19 released. (Andy Wardley)
Re: Bill Gates should be invited to O'Reilly's "Free So <rra@stanford.edu>
Re: Building perl/tk under win32 <kairys@mi.sl.com>
Floating Point Precision - Help please <wayne@mmmix.com>
format serial port data <mglaum@cim.mcgill.ca>
Re: General Rudeness, e.g. Re: Need a web login script <merlyn@stonehenge.com>
Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 11 Apr 1998 00:57:35 GMT
From: Kevin Johnson <kjj@pobox.com>
Subject: ANNOUNCE Mail::Folder v0.07
Message-Id: <6gmf5v$m$1@news.neta.com>
The newest version (0.07) of the Mail::Folder module has been posted to
CPAN under my author id (KJOHNSON) and name (Kevin_Johnson).
... perl's response to the Law of Software Envelopment ...
Mail::Folder provides a perl module interface to email folders that is
independent from the physical folders. The actual work on folders is
done with folder interface modules lying 'beneath' the Mail::Folder
interface.
The module is still in alpha release. Think twice about using it to
modify folders you consider important (at the very least make backup
copies :-). That being said, I'll mention I use it as the sole
interface to my email at home.
The method interface is currently in an evaluation phase. Before it
goes to beta, I expect to make method interface changes that won't be
backwards compatible.
The current version was developed and tested against 5.004_04 or
newer. Older versions probably won't work.
########################################################################
NOTE: The next release will probably have several incompatible :NOTE
NOTE: interface changes. :NOTE
########################################################################
Refer to the provided README file for additional information,
especially regarding package dependencies.
I am keenly interested in feedback from folks doing interesting stuff
with the package.
Please report any bugs/suggestions to <kjj@pobox.com>.
Copyright (c) 1996-1998 Kevin Johnson <kjj@pobox.com>
All rights reserved. This program is free software; you can
redistribute it and/or modify it under the same terms as Perl itself.
--
thx,
kjj@pobox.com http://www.pobox.com/~kjj/
------------------------------
Date: 11 Apr 1998 00:57:45 GMT
From: mhm@ausmail.austin.ibm.com ()
Subject: ANNOUNCE: DBD::DB2 0.66
Message-Id: <6gmf69$n$1@news.neta.com>
This version has one major rewrite, and two significant
bug fixes.
First, the restriciton of a single connection to DB2 has
been removed. The limit on multiple connections is now
determined by you DB2 configuration.
Second, two related bugs involving the return on DB2 errors
from nested calles have been fixed. Bug #1 would appear when
the implicit prepare within a $dbh->do() failed. Bug #2 would
appear when end of data occurred during a blob_read.
--
----------------------------------- #include <Standard_Disclaimer> -----
Michael H. Moran | Pager: 800-SKY-ibm1 PIN: 8825437
mhm@austin.ibm.com | Email2Pager: 8825437@skymail.com
IBM Corporation, Austin, Texas | Office: 512-259-9386 or tie 450-9743
------------------------------
Date: 11 Apr 1998 00:56:24 GMT
From: sb@engelschall.com (Steffen Beyer)
Subject: ANNOUNCE: "Bit::Vector" 5.2
Message-Id: <6gmf3o$d$1@news.neta.com>
I am glad to announce version 5.2 of the "Bit::Vector" module:
=====================================
Package "Bit::Vector" Version 5.2
=====================================
The package is available for download either from my web site at
http://www.engelschall.com/u/sb/download/
or from any CPAN (= "Comprehensive Perl Archive Network") mirror server:
(allow a few days for propagation if necessary)
http://www.perl.com/CPAN/authors/id/STBEY/
The package consists of a C library (designed for maximum efficiency)
which is the core of a Perl module (designed for maximum ease of use).
The C library is specifically designed so that it can be used stand-alone,
without Perl.
What does it do:
----------------
This module is useful for a large range of different tasks:
- For example for implementing sets and performing set operations
(like union, difference, intersection, complement, check for subset
relationship etc.),
- as a basis for many efficient algorithms, for instance the
"Sieve of Erathostenes" (for calculating prime numbers),
(The complexities of the methods in this module are usually either
O(1) or O(n/b), where "b" is the number of bits in a machine word
on your system.)
- for shift registers of arbitrary length (for example for cyclic
redundancy checksums),
- to calculate "look-ahead", "first" and "follow" character sets
for parsers and compiler-compilers,
- for graph algorithms,
- for efficient storage and retrieval of status information,
- for performing text synthesis ruled by boolean expressions,
- for "big integer" arithmetic with arbitrarily large integers,
- for manipulations of chunks of bits of arbitrary size,
- for bitwise processing of audio CD wave files,
- to convert formats of data files,
and more.
(A number of example applications is available from my web site at
http://www.engelschall.com/u/sb/download/.)
A large number of import/export methods allow you to access individual
bits, contiguous ranges of bits, machine words, arbitrary chunks of
bits, lists (arrays) of chunks of bits or machine words and a whole
bit vector at once (for instance for blockwrite/-read to and from
a file).
You can also import and export the contents of a bit vector in binary,
hexadecimal and decimal representation as well as ".newsrc" style
enumerations.
Note that this module is specifically designed for efficiency, which is
also the reason why its methods are implemented in C.
To further increase execution speed, the module doesn't use bytes as its
basic storage unit, but rather uses machine words, assuming that a machine
word is the most efficiently handled size of all scalar types on all
machines (that's what the ANSI C standard proposes and assumes anyway).
In order to achieve this, it automatically determines the number of bits
in a machine word on your system and then adjusts its internal configuration
constants accordingly.
The greater the size of this basic storage unit, the better the complexity
(= execution speed) of the methods in this module, but also the greater the
average waste of unused bits in the last word.
The range of available methods is exceptionally large for this kind of library;
in detail:
Version() Word_Bits() Long_Bits()
new() new_Hex() new_Bin()
new_Dec() new_Enum() Shadow()
Clone() Concat() Concat_List()
Size() Resize() Copy()
Empty() Fill() Flip()
Primes() Reverse() Interval_Empty()
Interval_Fill() Interval_Flip() Interval_Reverse()
Interval_Scan_inc() Interval_Scan_dec() Interval_Copy()
Interval_Substitute() is_empty() is_full()
equal() Lexicompare() Compare()
to_Hex() from_Hex() to_Bin()
from_Bin() to_Dec() from_Dec()
to_Enum() from_Enum() Bit_Off()
Bit_On() bit_flip() bit_test()
Bit_Copy() LSB() MSB()
lsb() msb() rotate_left()
rotate_right() shift_left() shift_right()
Move_Left() Move_Right() Insert()
Delete() increment() decrement()
add() subtract() Negate()
Absolute() Sign() Multiply()
Divide() GCD() Block_Store()
Block_Read() Word_Size() Word_Store()
Word_Read() Word_List_Store() Word_List_Read()
Word_Insert() Word_Delete() Chunk_Store()
Chunk_Read() Chunk_List_Store() Chunk_List_Read()
Index_List_Remove() Index_List_Store() Index_List_Read()
Union() Intersection() Difference()
ExclusiveOr() Complement() subset()
Norm() Min() Max()
Multiplication() Closure() Transpose()
Important note:
---------------
Note again that the C library at the core of this module ("BitVector.c")
can also be used stand-alone (i.e., without Perl).
To do so, simply link the output file "BitVector.o" (which is produced
when you build this module or when you just compile "BitVector.c") with
your application.
Example applications:
---------------------
See the module "Set::IntRange" for an easy-to-use module for sets
of integers of arbitrary ranges.
See the module "Math::MatrixBool" for an efficient implementation
of boolean matrices and boolean matrix operations.
(Both modules are also available from my web site or any CPAN server.)
An application relying crucially on this "Bit::Vector" module is "Slice",
a tool for generating different document versions out of a single
master file, ruled by boolean expressions ("include english version
of text plus examples but not ...").
(See also http://www.engelschall.com/sw/slice/.)
This tool is itself part of another tool, "Website META Language" ("WML"),
which allows you to generate and maintain large web sites.
Among many other features, it allows you to define your own HTML tags which
will be expanded either at generation or at run time, depending on your
choice.
(See also http://www.engelschall.com/sw/wml/.)
Both tools are written by Ralf S. Engelschall.
Changes in version 5.2:
-----------------------
In version 5.2, the method "Norm()" has been improved and should now be
faster by a factor varying between about 1.13 and 9.09, depending on the
number of set bits (using a method suggested and according to benchmarks
done by Krzysztof Koczyjan <krzysztofk@rocketmail.com>).
Moreover, the implementation of the overloaded operators "<<" and ">>"
has been changed so that they should also be more performant now, on
average (the former implementation was faster under certain circumstances
but not on average).
And finally, four new methods have been added: "new_Hex()", "new_Bin()",
"new_Dec()" and "new_Enum()", which allow you to create a new bit vector
and to initialize it in a single statement.
Changes in version 5.1:
-----------------------
In version 5.1, systematic exception handling was added to "Vector.pm" so that
error conditions arising from method calls in overloaded operators do not show
error messages anymore pointing to the location in "Vector.pm" where the method
was called, but rather to the location in your application program where the
overloaded operator was used.
New features in version 5.0:
----------------------------
In version 5.0, the following new methods have been added:
- Word_Bits()
- Long_Bits()
- Concat()
- Concat_List()
- Primes()
- Reverse()
- Interval_Reverse()
- Interval_Copy()
- Interval_Substitute()
- Lexicompare()
- to_Bin()
- from_bin()
- to_Dec()
- from_dec()
- Insert()
- Delete()
- add()
- subtract()
- Negate()
- Absolute()
- Sign()
- Multiply()
- Divide()
- GCD()
- Block_Store()
- Block_Read()
- Word_Size()
- Word_Store()
- Word_Read()
- Word_List_Store()
- Word_List_Read()
- Word_Insert()
- Word_Delete()
- Chunk_Store()
- Chunk_Read()
- Chunk_List_Store()
- Chunk_List_Read()
- Index_List_Remove()
- Index_List_Store()
- Index_List_Read()
- Transpose()
Please see the "Bit::Vector" man page (after installing this module)
for more details about these new methods.
The following methods have been re-implemented in C (instead of Perl):
- Version()
- Shadow()
- Clone()
- to_Enum() (previously named "to_ASCII")
- from_enum() (previously named "from_ASCII")
The following method has changed its behaviour:
- Compare() (now assumes that bit vectors are SIGNED)
The following methods have been renamed:
- to_String() --> to_Hex()
- from_string() --> from_hex()
- to_ASCII() --> to_Enum()
- from_ASCII() --> from_enum()
(Aliases for the old names are still available but deprecated!)
And finally, the following methods are gone:
- lexorder()
- new_from_String()
A tool is available in the module's distribution to upgrade your existing
applications and to provide substitutes for the two methods that are gone.
Legal issues:
-------------
This package with all its parts is
Copyright (c) 1995, 1996, 1997, 1998 by Steffen Beyer.
All rights reserved.
This package is free software; you can redistribute it and/or
modify it under the same terms as Perl itself, i.e., under the
terms of the "Artistic License" or the "GNU General Public License".
The C library at the core of this Perl module can additionally
be redistributed and/or modified under the terms of the "GNU
Library General Public License".
Please refer to the files "Artistic", "GNU_GPL" and "GNU_LGPL"
in the package's distribution for details!
Prerequisites:
--------------
Perl version 5.000 or higher, and an ANSI C compiler (!)
======
Author's note:
--------------
If you have any questions, suggestions or need any assistance, please
let me know!
Also, if there is anything you would like to do with this module which
the module doesn't allow yet, please let me know! If it fits the module's
overall concept, I'll implement it as soon as possible. Frequently this is
only a matter of a few days.
I hope you will find this module beneficial!
Yours,
--
Steffen Beyer <sb@engelschall.com> http://www.engelschall.com/u/sb/
"There is enough for the need of everyone in this world,
but not for the greed of everyone." - Mahatma Gandhi
------------------------------
Date: 11 Apr 1998 00:56:58 GMT
From: neilb@cre.canon.co.uk (Neil Bowers)
Subject: ANNOUNCE: cpan-upload 1.2
Message-Id: <6gmf4q$h$1@news.neta.com>
cpan-upload 1.2
cpan-upload is a script which makes it easy for Perl authors to upload
files to CPAN using PAUSE. I just uploaded 1.2:
file: $CPAN/authors/id/NEILB/cpan-upload-1.2.tar.gz
size: 5181 bytes
md5: 6829109bf9f341be8105f21f37fedcbe
The script was uploaded with the following command:
% cpan-upload cpan-upload-1.2.tar.gz
which results in the script
1. ftp'ing the file to PAUSE
2. POST'ing to the PAUSE web server, to add the file as you
This version fixes a bug in the way the script uses App::Config,
which was causing problems if you had a password which included
something looking like a perl variable.
neilb
--
The secret of success is constancy of purpose.
-- Disraeli (1804-1881)
------------------------------
Date: 11 Apr 1998 00:58:44 GMT
From: sbeck@cise.ufl.edu (Sullivan N. Beck)
Subject: ANNOUNCE: Date::Manip-5.31
Message-Id: <6gmf84$p$1@news.neta.com>
I just uploaded the newest version of Date::Manip to CPAN. It should be
available within a day. 5.31 is primarily a bug fix release. It fixes
several minor bugs and documentation problems.
Notes for version 5.31:
Mainly a bug fix release.
Aplit Manip.pm so it's not all in one file.
Allowed non-ISO-8601 timezones with ISO-8601 dates.
Added "epoch 52352352352" to ParseDate to parse seconds since the epoch.
Added German date support.
Date_NthDayOfYear enhanced.
------------------------------------------------------------------------------
Sullivan Beck http://www.cise.ufl.edu/~sbeck/
sbeck@cise.ufl.edu | This space reserved for some saying demonstrating great
PH : (352) 392-1057 | wisdom, wit, or insight. I'll fill it in just as soon
Fax: (352) 392-1220 | as I have any of the above.
------------------------------------------------------------------------------
------------------------------
Date: 11 Apr 1998 00:57:24 GMT
From: Kevin Johnson <kjj@pobox.com>
Subject: ANNOUNCE: Net::xAP (and friends) v0.1
Message-Id: <6gmf5k$l$1@news.neta.com>
This posting is to announce the availability of the first alpha
release of the Net::xAP module for perl.
It has been posted to CPAN as NetxAP-0.01.tar.gz under my author id
(KJOHNSON) and name (Kevin_Johnson).
Net::xAP is a perl module that implements the protocol substrate
present in the IMAP, IMSP, ACAP, and ICAP application protocols. The
beginnings of an IMAP module is also provided. A framework for IMSP,
ACAP, and ICAP modules is also provided.
IMAP = Internet Message Access Protocol
IMSP = Internet Message Support Protocol
ACAP = Application Configuration Access Protocol
ICAP = Internet Calendar Access Protocol
The module is in alpha release. Think twice (maybe thrice) about
using it to modify data. In addition, the method interface is
currently in an evaluation phase. Before it goes to beta, I expect to
make method interface changes that won't be backwards compatible.
The main purpose of this release is to get feedback on the interface
and to run it through its paces. I am keenly interested in feedback
from folks that have a non-trivial familiarity with the IMAP, IMSP,
ACAP, or ICAP protocols.
The current version has been tested against 5.004_04.
Refer to the provided README file for additional information and
warnings.
Please report any bugs/suggestions to <kjj@pobox.com>.
Copyright (c) 1997-1998 Kevin Johnson <kjj@pobox.com>
All rights reserved. This program is free software; you can
redistribute it and/or modify it under the same terms as Perl itself.
--
thx,
kjj@pobox.com http://www.pobox.com/~kjj/
------------------------------
Date: 11 Apr 1998 00:57:12 GMT
From: abw@cre.canon.co.uk (Andy Wardley)
Subject: ANNOUNCE: Text::MetaText version 0.19 released.
Message-Id: <6gmf58$k$1@news.neta.com>
The latest version of Text::MetaText is trundling its way through CPAN
as I type.
MetaText is (yet another) text processor, ideally suited to web page
generation and other similar tasks (they seem to be getting real
popular these days... I wonder if template processing in perl has
become a standard part of a college course somewhere? :-)
Included in the distribution, for those who are at a loss facing this
plethora of modules, is a 'Features' file which lists the main features
of MetaText and compares and contrasts it to some of the other text
processing solutions out there (e.g. Text::Template, Parse::ePerl,
Text::Vpp).
Included below is the README file.
Enjoy.
A
#========================================================================
#
# Text::MetaText
#
# Version 0.19
#
# Copyright (C) 1996-1998 Andy Wardley <abw@kfs.org>.
# All Rights Reserved.
#
#------------------------------------------------------------------------
#
# README
#
# This file is contains relevant extracts from the MetaText documentation
# to provide an overview of MetaText and in particular, the installation
# process.
#
# For more information, see the full MetaText documentation and
# support files:
#
# Changes Somewhat verbose list of per-version changes.
# Todo Known bugs and possible future enhancements.
# Features A summary of MetaText features and brief comparison to
# other perl 'template' modules.
#
#========================================================================
#------------------------------------------------------------------------
# QUICK START
#------------------------------------------------------------------------
CPAN: /modules/by-authors/Andy_Wardley/Text-MetaText-<ver>.tar.gz
gunzip Text-MetaText-<ver>.tar.gz
tar xvf Text-MetaText-<ver>.tar
cd Text-MetaText-<ver>
perl Makefile.PL
make
make test
make install
#!/usr/bin/perl -w
use Text::MetaText;
my $mt = Text::MetaText->new();
print $mt->process_file($myfile);
print $mt->process_text($mytext);
#------------------------------------------------------------------------
# DOCUMENTATION EXTRACTS
#------------------------------------------------------------------------
NAME
Text::MetaText - Perl extension implementing meta-language for
processing "template" text files.
SYNOPSIS
use Text::MetaText;
my $mt = Text::MetaText->new();
print $mt->process_file($filename, \%vardefs);
print $mt->process_text($textstring, \%vardefs);
SUMMARY OF METATEXT DIRECTIVES
%% DEFINE
variable1 = value # define variable(s)
variable2 = "quoted value"
%%
%% SUBST variable %% # insert variable value
%% variable %% # short form of above
%% BLOCK blockname %% # define a block 'blockname'
block text...
%% ENDBLOCK %%
%% INCLUDE blockname %% # include 'blockname' block text
%% INCLUDE filename %% # include external file 'filename'
%% INCLUDE file_or_block # a more complete example...
variable = value # additional variable definition(s)
if = condition # conditional inclusion
unless = condition # conditional exclusion
format = format_string # printf-like format string with '%s'
filter = fltname(params) # post-process filter
%%
%% TIME # current system time, as per time(2)
format = format_string # display format, as per strftime(3C)
%%
DESCRIPTION
MetaText is a text processing and markup meta-language which can
be used for processing "template" files. This module is a Perl 5
extension implementing a MetaText object class which processes
text files, interpreting and acting on the embedded MetaText
directives within.
Like a glorified pre-processor, MetaText can; include files,
define and substitute variable values, execute conditional
actions based on variables, call other perl functions or object
methods and capture the resulting output back into the document,
and more. It can format the resulting output of any of these
operations in a number of ways. The objects, and inherently, the
format and symantics of the MetaText langauge itself, are highly
configurable.
MetaText was originally designed to aid in the creation of html
documents in a large web site. It remains well suited for this
and similar tasks, being able to create web pages (dynamically
or statically) that are consistent with each other, yet easily
customisable:
* standard headers, footers and other elements can be defined in
separate files and then inserted into web documents:
%% INCLUDE header %%
* variables can be defined externally or from within a document,
then can be substituted back into the text. This is useful
for including your %% name %% or %% email %% address or any
other variable, and for encoding URL's or file paths that
can then be changed en masse. e.g.
<img src="%% imgroot %%/foo/bar.gif">
* conditional actions can be made based on variable definitions,
allowing easily and instantly customisable web pages. e.g
%% INCLUDE higraphics/header if="higfx && userid != abw" %%
* blocks of text can be internally defined simplifying the
creation of repetitive elements. e.g.
%% BLOCK table_row %%
<tr> <td>%% userid %%</td> <td>%% name %%</td> </tr>
%% ENDBLOCK %%
%% INCLUDE table_row userid=lwall name="Larry Wall" %%
%% INCLUDE table_row userid=tomc name="Tom Christiansen" %%
%% INCLUDE table_row userid=merlyn name="Randal L. Schwartz" %%
* in addition, the metapage utility is a script which can
automatically traverse document trees, processing updated
files to assist in web document management and other similar
tasks.
PREREQUISITES
MetaText requires Perl 5.004 or later. The Date::Format module
should also be installed. This is available from CPAN (in the
"TimeDate" distribution) as described in the following section.
The metapage utility also requires the File::Recurse module,
distributed in the "File-Tools" bundle, also available from
CPAN.
OBTAINING AND INSTALLING THE METATEXT MODULE
The MetaText module is available from CPAN. As the 'perlmod' man
page explains:
CPAN stands for the Comprehensive Perl Archive Network.
This is a globally replicated collection of all known Perl
materials, including hundreds of unbunded modules.
[...]
For an up-to-date listing of CPAN sites, see
http://www.perl.com/perl/ or ftp://ftp.perl.com/perl/ .
Within the CPAN archive, MetaText is in the "Text::" group which
forms part of the the category:
*) String Processing, Language Text Processing,
Parsing and Searching
The module is available in the following directories:
/modules/by-module/Text/Text-MetaText-<version>.tar.gz
/authors/id/ABW/Text-MetaText-<version>.tar.gz
For the latest information on MetaText or to download the latest
pre-release/beta version of the module, consult the definitive
reference, the MetaText Home Page:
http://www.kfs.org/~abw/perl/metatext/
MetaText is distributed as a single gzipped tar archive file:
Text-MetaText-<version>.tar.gz
Note that "<version>" represents the current MetaText Revision
number, of the form "0.18". See the REVISION section below to
determine the current version number for Text::MetaText.
Unpack the archive to create a MetaText installation directory:
gunzip Text-MetaText-<version>.tar.gz
tar xvf Text-MetaText-<version>.tar
'cd' into that directory, make, test and install the MetaText
module:
cd Text-MetaText-<version>
perl Makefile.PL
make
make test
make install
The 't' sub-directory contains a number of small sample files
which are processed by the test script (called by 'make test').
See the README file in that directory for more information. A
logfile (test.log) is generated to report any errors that occur
during this process. Please note that the test suite is
incomplete and very much in an 'alpha' state. Any further
contributions here are welcome.
The 'make install' will install the module on your system. You
may need root access to perform this task. If you install the
module in a local directory (for example, by executing "perl
Makefile.PL LIB=~/lib" in the above - see `perldoc MakeMaker'
for full details), you will need to ensure that the PERL5LIB
environment variable is set to include the location, or add a
line to your scripts explicitly naming the library location:
use lib '/local/path/to/lib';
The metapage utility is a script designed to automate MetaText
processing of files. It can traverse directory trees, identify
modified files (by comparing the time stamp of the equivalent
file in both "source" and "destination" directories), process
them and direct the resulting output to the appropriate file
location in the destination tree. One can think of metapage as
the MetaText equivalent of the Unix make(1S) utility.
The installation process detailed above should install metapage
in your system's perl 'installbin' directory (try
"perl '-V:installbin'" to check this location). See the metapage
documentation (`perldoc metapage') for more information on
configuring and using metapage.
AUTHOR
Andy Wardley <abw@kfs.org>
See also:
http://www.kfs.org/~abw/
REVISION
$Revision: 0.19 $
COPYRIGHT
Copyright (c) 1996-1998 Andy Wardley. All Rights Reserved.
This program is free software; you can redistribute it and/or
modify it under the terms of the Perl Artistic License.
SEE ALSO
For more information, see the accompanying documentation and
support files:
README Text based version of the module documentation.
Changes Somewhat verbose list of per-version changes.
Todo Known bugs and possible future enhancements.
Features A summary of MetaText features and brief comparison to
other perl 'template' modules.
For information about the metapage utility, consult the specific
documentation:
perldoc metapage
or
man metapage
For more information about the author and other Perl development work:
http://www.kfs.org/~abw/
http://www.kfs.org/~abw/perl/
http://www.cre.canon.co.uk/perl/
For more information about Perl in general:
http://www.perl.com/
--
Andy Wardley <abw@kfs.org> http://www.kfs.org/~abw
Signature lost in transit. We apologise for any inconvenience caused.
------------------------------
Date: 10 Apr 1998 16:32:55 -0700
From: Russ Allbery <rra@stanford.edu>
Subject: Re: Bill Gates should be invited to O'Reilly's "Free Software Summit" (was Re: RMS should be invited to O'Reilly's "Free Software Summit")
Message-Id: <m3sonluuag.fsf@windlord.Stanford.EDU>
In comp.lang.perl.misc, Russell Nelson <nelson@crynwr.com> writes:
> And people still buy the books. I have three Perl books in my office.
Yup. Five here, all O'Reilly, if one counts the Perl Resource Kit as one
book. (Admittedly, some of those were complimentary....)
--
#!/usr/bin/perl -- Russ Allbery, Just Another Perl Hacker
$^=q;@!>~|{>krw>yn{u<$$<[~||<Juukn{=,<S~|}<Jwx}qn{<Yn{u<Qjltn{ > 0gFzD gD,
00Fz, 0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{
rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/ #y,d,s,(\$.),$1,gee,print
------------------------------
Date: Fri, 10 Apr 1998 15:41:11 -0400
From: "Michael Kairys" <kairys@mi.sl.com>
Subject: Re: Building perl/tk under win32
Message-Id: <352e8219.0@news.ic.net>
>
>I'm trying to build perl/tk version 402.004 under NT 4.0 and I'm
>not having a lot of success. After manually editing two header
>files I've now reached a point where dmake is asking for a
>file called 'tkImgPhoto.exc'. Does anyone know what this file
>is or how I can create it?
>
>Any other suggestions on building on NT would be helpfull.
>
>-Daniel
>
It's a zero-length file in the distribution kit. How did you expand the
original g-zipped tar file? did you use WinZip? It has a bug (acknowledged
by their support line) such that it will not expand zero-length files inside
tar files.
You can create yourself an empty file pTk\tkImgPhoto.exc.
------------------------------
Date: Sat, 11 Apr 1998 01:08:32 +0100
From: "Wayne Smith" <wayne@mmmix.com>
Subject: Floating Point Precision - Help please
Message-Id: <352eb47a.0@newsread1.dircon.co.uk>
Could anyone give me the syntax so that
$result = 22 / 7 ;
gives me 3.14 in the variable instead of 3.1428571429 etc.
Replies sent to wayne@rwcc.com especially appreciated :-)
------------------------------
Date: Fri, 10 Apr 1998 19:16:44 -0400
From: Michael Glaum <mglaum@cim.mcgill.ca>
Subject: format serial port data
Message-Id: <352EA85C.41C67EA6@cim.mcgill.ca>
Hello,
I've got a technical problem and I was wondering if perl
might be the way to go. Advice please. Would greatly
appreciate it.
I have this RF antenna controller, complete with an embedded
processor. The processor has a serial port hooked up to
it. We dump data down the serial port for debugging. The
embedded processor also reads the serial port so we can
halt it, tell it what to print, turn control loops on or
off, etc. Data from the embedded processor comes thick
and fast: eight 12 character floating-point numbers at
100Hz, perhaps. Diagnostics are also pumped down the
serial port. The processor is stuck to the antenna, which
is flying all over the place so hooking up a emulator is
out of the question.
Historically, we communicate with the serial port data via
Procomm. We edit the file to remove the diagnostic messages,
format the data so it can be loaded into MATLAB and do our
analysis. TEDIOUS!
Automating this process would help. Might Perl be useful
to interpret the bidirectional communication and format
it for MATLAB? For example, my Perl program would look
at the messages I sent the processor and figure out that I
told it to print "azimuth motor commands, etc". It would
then discard this message and format the data stream into
a MATLAB ascii file so that when I ran the MATLAB file
it would plot the data stream with the y-axis heading
"azimuth motor commands".
Where might I find a perl source that would help me figure
out how this might be done?
Michael Glaum
--
Michael Glaum e-mail: mglaum@cim.mcgill.ca
Dept of Electrical Engineering phone: (514) 398-8202
McGill University, Montreal fax: (514) 398-4470
------------------------------
Date: Sat, 11 Apr 1998 01:43:21 GMT
From: Randal Schwartz <merlyn@stonehenge.com>
To: sonny <sonny@88net.net>
Subject: Re: General Rudeness, e.g. Re: Need a web login script
Message-Id: <8c4t01w2ui.fsf@gadget.cscaper.com>
>>>>> "sonny" == sonny <sonny@88net.net> writes:
sonny> Do you think that being rude to people who post questions that
sonny> you deem aren't worthy will deter others from doing so? All
sonny> this invective just adds to the general noise. Ignore them,
sonny> tell them to RTFM, or give'm an URL, but this "its my
sonny> playground" attitude is really childish.
We obviously don't have the data in, but perhaps, just perhaps, all
this "don't post *this* to CLPM" postings are in fact, reducing the
number of off-topic posts by a factor of 3 or 5 already.
That's what *I'm* betting on.
Still looking forward to clp.moderated though. I will finally
abandon this group on that day.
print "Just another Perl hacker," # but not what the media calls "hacker!" :-)
## legal fund: $20,990.69 collected, $186,159.85 spent; just 143 more days
## before I go to *prison* for 90 days; email fund@stonehenge.com for details
--
Name: Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095
Keywords: Perl training, UNIX[tm] consulting, video production, skiing, flying
Email: <merlyn@stonehenge.com> Snail: (Call) PGP-Key: (finger merlyn@teleport.com)
Web: <A HREF="http://www.stonehenge.com/merlyn/">My Home Page!</A>
Quote: "I'm telling you, if I could have five lines in my .sig, I would!" -- me
------------------------------
Date: 8 Mar 97 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 8 Mar 97)
Message-Id: <null>
Administrivia:
The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc. For subscription or unsubscription requests, send
the single line:
subscribe perl-users
or:
unsubscribe perl-users
to almanac@ruby.oce.orst.edu.
To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.
The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.
The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.
For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.
------------------------------
End of Perl-Users Digest V8 Issue 2295
**************************************