[31520] in Perl-Users-Digest
Perl-Users Digest, Issue: 2779 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue Jan 19 21:09:42 2010
Date: Tue, 19 Jan 2010 18:09:09 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Perl-Users Digest Tue, 19 Jan 2010 Volume: 11 Number: 2779
Today's topics:
Re: a defense of ad hoc software development <gusenet@comcast.net>
Re: After a long day. <jumper99@gmx.de>
alternatives for branching <cartercc@gmail.com>
Re: alternatives for branching <john@castleamber.com>
Re: alternatives for branching <skye.shaw@gmail.com>
Re: alternatives for branching <ben@morrow.me.uk>
Re: alternatives for branching <OJZGSRPBZVCX@spammotel.com>
Re: alternatives for branching <jurgenex@hotmail.com>
Re: alternatives for branching <ben@morrow.me.uk>
capturing error in MIME::Lite <john1949@yahoo.com>
Re: capturing error in MIME::Lite <smallpond@juno.com>
Re: FAQ 7.28 How do I clear a package? <brian.d.foy@gmail.com>
Re: FAQ 7.28 How do I clear a package? <kst-u@mib.org>
Re: FAQ 9.16 How do I decode a CGI form? <brian.d.foy@gmail.com>
Re: new dbi connection for each request under mod_perl <tzz@lifelogs.com>
Re: Variable set to 0 <hjp-usenet2@hjp.at>
Re: Variable set to 0 <glennj@ncf.ca>
Re: Variable set to 0 <ben@morrow.me.uk>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Tue, 19 Jan 2010 09:39:26 -0500
From: Greg Menke <gusenet@comcast.net>
Subject: Re: a defense of ad hoc software development
Message-Id: <86r5pm40rl.fsf@apshai.pienet>
rpw3@rpw3.org (Rob Warnock) writes:
> Greg Menke <gusenet@comcast.net> wrote:
> +---------------
> | And whatever your write Shall Conform to several (possibly
> | contradictory) coding standards both locally defined and those visited
> | upon the world by ISO/CMMI (as mandated by management who doesn't
> | actually have to use them). And whatever you do end up coding has to be
> | documented according to appendices of the aforementioned standards
> | specs, and all changes to it also Shall Conform to the change control
> | specs. And when you put your (surviving) code through Validation &
> | Verification, the pencil pushers who apply that process have full
> | editorial control over your code- from accept to change to reject, and
> | are unencumbered by any knowledge, responsibility or accountability for
> | the project.
> +---------------
>
> Charles Stross <http://www.antipope.org/charlie/blog-static/fiction/faq.html>
> does a pretty good job of capturing the insanity of this in his
> "Laundry" stories ["The Atrocity Archives", "The Concrete Jungle",
> "The Jennifer Morgue", and "The Fuller Memorandum" (due July 2010)].
> E.g., exactly how *does* a top-secret intelligence agency deal with
> ISO-9002 conformance and outsourced COTS application infrastructure
> and audits by the BSA(!) and DRM on essential operational software?!?
> ;-} ;-}
I can't speak for the spooks but the problem exists to some degree for
anyone who has to work with sensitive data. In part you deal with it by
being very nuanced with respect to "conforming".
For instance, perhaps requirements from On High (well meaning but
blissfully abstract) say that 100% of code Shall Conform to ISO blahblah
and CMMI Bend-Over-And-Take-It Standard Rev
259-stroke-V-stroke-XYZPDQ-rev-OMFG!!! and you have to use a proprietary
operating system. So you say OK, well we don't have the $$$ for a code
audit of the OS and theres no way we could get a copy of the source
anyhow, (and even if we did that P.O.S wouldn't stand up to a review by
my 4 yr old anyhow) so we shall view it as a COTS product and not
something we write, and thus mark it "inapplicable" in the code review
packages. And, hope we can defend that choice later on. Probably will
work OK because everybody else does that too, and nobody is going to
look at that stuff closely unless we really blow it, the project tanks
because of us, and it was worth enough for Official Reviews with the
knives out.
You can dodge some of the phone home licensing stupidity by spending
many extra tax-payer $$$ for node-locked and perpetual licenses so as to
avoid the internet traffic back to the vendor. (many such licenses are
discarded at the end of the project because by then they're old or just
forgotten about).
I've not witnessed it myself but I've often wondered if some of the big
enterprise support contracts with the big IT vendors represents payolla
for the inevitible licensing snafus which show up in any big
organizations- easier to just pay the "protection money" up front- lots
of extra $$$ but at least it saves the audit chaos.
Sometimes work is like a big s&@t sandwich and you're paid for your
appetite... but if you can stomach the yuck there is a lot of
opportunity to work on interesting projects.
Gregm
------------------------------
Date: 19 Jan 2010 13:59:24 GMT
From: "Helmut Schneider" <jumper99@gmx.de>
Subject: Re: After a long day.
Message-Id: <xn0gpbxik73abl9003@news.individual.net>
Permostat wrote:
> This is my recipe for duck Foie Gras
A duck, or a guinea fowl (in german: Perlhuhn)?
--
No Swen today, my love has gone away
My mailbox stands for lorn, a symbol of the dawn
------------------------------
Date: Tue, 19 Jan 2010 13:49:43 -0800 (PST)
From: ccc31807 <cartercc@gmail.com>
Subject: alternatives for branching
Message-Id: <34df1ac6-9e57-4d2d-9654-02164538db02@k17g2000yqh.googlegroups.com>
In a web application that I maintain, the main logic contains several
dozen elsif statements nested to several levels. The tests aren't all
the same, although in the code sample I've posted below they are the
same. I can maintain this fairly easily but I'd like to redo the logic
as it seems unwieldy and ugly to me.
This is a database application, and each branch typically calls two
procedures, the first running an SQL statement and the second a
display routine.
Is there a Perl alternative to this logic? If so, how could this be
rewritten in Perl? In general, what are alternatives to a whole bunch
of elsif statements nested to several levels?
Thanks, CC.
-------code sample------------------------
elsif ($subpage =~ /ResetPW/)
{
my $email_hash = SQL::reset_password($foruser);
CONSOLE::successful_email("$email_hash->{fullname}",
"$email_hash->{email1},$email_hash->{email2},$email_hash->{email3}",
'reset_password@site.org', '', 'Your MUPD password has been reset',
"Dear $email_hash->{fullname}: Yoursite.org password has been reset to
********'. Please use the contact form if you have any questions about
this. Thank you.");
HTML::control_button($sesskey, 'Administer Security');
}
elsif ($subpage =~ /ChangeRole/)
{
SQL::change_role($foruser);
HTML::control_button($sesskey, 'Administer Security');
}
#-----------calendar (events) logic-----------------
elsif ($subpage =~ /DeleteEvent/)
{
SQL::delete_event($foruser);
HTML::control_button($sesskey, 'Manage Events');
}
elsif ($subpage =~ /EditEvent/)
{
HTML::control_button($sesskey, 'Manage Events');
HTML::manage_event_form($sesskey, $foruser);
}
elsif ($subpage =~ /UpdateEvent/)
{
SQL::update_event($calid, $event, $description, $place,
$eventdate, $type, $uniform, $required, $display, $comments);
HTML::control_button($sesskey, 'Manage Events');
}
elsif ($subpage =~ /DisplayEvents/)
{
my $events_ref = SQL::get_events();
HTML::display_events($events_ref);
}
#-----------news items logic-----------------
elsif ($subpage eq 'InsertNews')
{
SQL::insert_news($head, $first, $body, $priority,
$display, $comments, $username);
my $msg = qq(
HEADLINE: $head
FIRST: $first
BODY: $body
COMMENTS: $comments
USERNAME: $username
);
SITE::notify_admin('News Article Added',$msg);
HTML::control_button($sesskey, 'Add News');
}
elsif ($subpage =~ /DeleteNews/)
{
SQL::delete_news($foruser);
HTML::control_button($sesskey, 'Manage News');
}
elsif ($subpage =~ /EditNews/)
{
HTML::manage_news_form($sesskey, $foruser);
HTML::control_button($sesskey, 'Manage News');
}
elsif ($subpage =~ /UpdateNews/)
{
SQL::update_news($newsid, $head, $first, $body, $priority,
$display, $comments);
HTML::control_button($sesskey, 'Manage News');
}
elsif ($subpage =~ /DisplayNews/)
{
my $news_ref = SQL::get_news();
HTML::display_news($news_ref);
}
------------------------------
Date: Tue, 19 Jan 2010 16:06:11 -0600
From: John Bokma <john@castleamber.com>
Subject: Re: alternatives for branching
Message-Id: <87bpgpagx8.fsf@castleamber.com>
ccc31807 <cartercc@gmail.com> writes:
> In a web application that I maintain, the main logic contains several
> dozen elsif statements nested to several levels. The tests aren't all
> the same, although in the code sample I've posted below they are the
> same. I can maintain this fairly easily but I'd like to redo the logic
> as it seems unwieldy and ugly to me.
I used Regexp::Assemble in the past for that, but my code broke when I
moved to Perl 5.10.
If the names are all constant strings, and you don't do actuall
matching use something like:
my %dispatch = (
ResetPw => \&reset_pw,
ChangeRole => \&change_role,
:
);
my $sub = $dispatch{ $subpage };
defined $sub or $sub = ....
$sub->( ... );
--
John Bokma j3b
Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development
------------------------------
Date: Tue, 19 Jan 2010 14:11:31 -0800 (PST)
From: "Skye Shaw!@#$" <skye.shaw@gmail.com>
Subject: Re: alternatives for branching
Message-Id: <f2934272-03cf-423c-87f2-a4bd73ba2e42@k19g2000yqc.googlegroups.com>
On 19 ene, 13:49, ccc31807 <carte...@gmail.com> wrote:
> In a web application that I maintain, the main logic contains several
> dozen elsif statements nested to several levels.
<snip if else blocks>
Your conditions focus on several different nouns: News, Event, etc...
with similar actions -create, read, update, etc...
Most likely these nouns actually represent distinct entities on your
web site. If so, the most logical thing to do would be to handle
requests to delete News in a script (controller) used solely for
News.
Same goes for Event, Role, and whatnot.
-Skye
------------------------------
Date: Tue, 19 Jan 2010 22:32:48 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: alternatives for branching
Message-Id: <ghoh27-lb6.ln1@osiris.mauzo.dyndns.org>
Quoth ccc31807 <cartercc@gmail.com>:
> In a web application that I maintain, the main logic contains several
> dozen elsif statements nested to several levels. The tests aren't all
> the same, although in the code sample I've posted below they are the
> same. I can maintain this fairly easily but I'd like to redo the logic
> as it seems unwieldy and ugly to me.
>
> This is a database application, and each branch typically calls two
> procedures, the first running an SQL statement and the second a
> display routine.
My first response would be 'see Catalyst'. I'm certain it can be made to
do what you want with your URLs fairly easily, though it would require
completely rewriting the app (splitting it into multiple parts, so that
each 'elsif' branch below becomes a method in a controller class).
> Is there a Perl alternative to this logic? If so, how could this be
> rewritten in Perl? In general, what are alternatives to a whole bunch
> of elsif statements nested to several levels?
The usual alternatives to a whole lot of elsifs are either a dispatch
table or an object with methods (and now, of course, we have given/when,
though I'm not yet convinced how much it buys you). It's not clear below
whether you need those matches to be matches, or whether you can extract
the interesting bit of $subpage and use it as a key to a hash or a
method name.
In general, if your conditions are truly arbitrary there is no
alternative to a great big control structure, so you need to find
subsets of conditions which are 'the same' and turn them into dispatch
tables. If your logic is complicated you may find you need a much
shorter if/elsif construction which simply chooses which table to
dispatch on and where to get the key from.
Ben
------------------------------
Date: Wed, 20 Jan 2010 01:33:10 +0100
From: "Jochen Lehmeier" <OJZGSRPBZVCX@spammotel.com>
Subject: Re: alternatives for branching
Message-Id: <op.u6s2hknjmk9oye@frodo>
On Tue, 19 Jan 2010 22:49:43 +0100, ccc31807 <cartercc@gmail.com> wrote:
> Is there a Perl alternative to this logic?
> elsif ($subpage =~ /ChangeRole/)
> {
> SQL::change_role($foruser);
> HTML::control_button($sesskey, 'Administer Security');
> }
You got some pointers already.
Two concrete techniques (just examples, not finished code, not necessarily
well-written, and you will find people here who frown upon either
</disclaimer> ) are:
my %hash = (
ChangeRole => sub { SQL::change_role($foruser); ... },
DeleteEvent => sub { ... },
...
);
{
no strict "refs";
$hash{$subpage}->();
}
And:
sub ChangeRole
{
SQL::change_role...
}
sub DeleteEvent
{
...
}
{
no strict "refs";
$subpage->();
}
Just to get your started (there are many different ways to go about this).
There are also modules on CPAN for MVC frameworks, if you want to pull out
the big guns.
------------------------------
Date: Tue, 19 Jan 2010 16:44:11 -0800
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: alternatives for branching
Message-Id: <tckcl5h3922o36mtuoa6h718ehf2t83na6@4ax.com>
ccc31807 <cartercc@gmail.com> wrote:
>In a web application that I maintain, the main logic contains several
>dozen elsif statements nested to several levels. The tests aren't all
>the same, although in the code sample I've posted below they are the
>same. I can maintain this fairly easily but I'd like to redo the logic
>as it seems unwieldy and ugly to me.
>
>This is a database application, and each branch typically calls two
>procedures, the first running an SQL statement and the second a
>display routine.
>
>Is there a Perl alternative to this logic? If so, how could this be
>rewritten in Perl? In general, what are alternatives to a whole bunch
>of elsif statements nested to several levels?
I think you are looking for a 'dispatch table'.
jue
------------------------------
Date: Wed, 20 Jan 2010 01:47:19 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: alternatives for branching
Message-Id: <7u3i27-238.ln1@osiris.mauzo.dyndns.org>
Quoth "Jochen Lehmeier" <OJZGSRPBZVCX@spammotel.com>:
> On Tue, 19 Jan 2010 22:49:43 +0100, ccc31807 <cartercc@gmail.com> wrote:
>
> > Is there a Perl alternative to this logic?
>
> > elsif ($subpage =~ /ChangeRole/)
> > {
> > SQL::change_role($foruser);
> > HTML::control_button($sesskey, 'Administer Security');
> > }
>
> You got some pointers already.
>
> Two concrete techniques (just examples, not finished code, not necessarily
> well-written, and you will find people here who frown upon either
> </disclaimer> ) are:
Disclaimer noted, but still... :)
> my %hash = (
> ChangeRole => sub { SQL::change_role($foruser); ... },
> DeleteEvent => sub { ... },
> ...
> );
>
> {
> no strict "refs";
No need for symrefs here. sub {} returns a hard ref, which can be called
with ->() perfectly well under strictures.
> $hash{$subpage}->();
> }
>
>
> And:
>
>
> sub ChangeRole
> {
> SQL::change_role...
> }
>
> sub DeleteEvent
> {
> ...
> }
>
> {
> no strict "refs";
> $subpage->();
This is in almost every way inferior to your previous suggestion, since
you are effectively just using the stash where a plain hash would do
perfectly well.
The alternative you didn't mention was
{
package Dispatch;
sub ChangeRole {...}
sub DeleteEvent {...}
}
# then either
Dispatch->$subpage();
# or (presume some constructor has also been defined)
my $d = Dispatch->new;
$d->$subpage();
While on the surface this is equivalent to your symrefs example above
(despite passing strictures), the fact that you can have several dispatch
classes which inherit actions from each other justifies using the symbol
table, since call-by-name is necessary for inheritance to work. This is
effectively the approach used by Catalyst, though it remaps the URLs
based on attributes on the methods first, for more flexibility.
Ben
------------------------------
Date: Tue, 19 Jan 2010 14:55:49 -0000
From: "John" <john1949@yahoo.com>
Subject: capturing error in MIME::Lite
Message-Id: <hj4h5j$att$1@news.albasani.net>
Hi
I have
use Net::SMTP;
use MIME::Lite;
.. ... ...
MIME::Lite->send('smtp',$mail_host,TimeOut=>60);
$msg->send or die "error in email";
I thought the die would capture any error. If the email address is not
vaild I get:
Software error:
SMTP recipient() command failed:
5.1.1 <john9999@example.com>: Recipient address rejected: User unknown in
virtual alias table
Why isn't die capturing the error?
Regards
John
------------------------------
Date: Tue, 19 Jan 2010 15:46:42 -0500
From: Steve C <smallpond@juno.com>
Subject: Re: capturing error in MIME::Lite
Message-Id: <hj55o3$n75$1@news.eternal-september.org>
John wrote:
> Hi
>
> I have
>
> use Net::SMTP;
> use MIME::Lite;
> .. ... ...
> MIME::Lite->send('smtp',$mail_host,TimeOut=>60);
> $msg->send or die "error in email";
>
> I thought the die would capture any error. If the email address is not
> vaild I get:
>
> Software error:
> SMTP recipient() command failed:
> 5.1.1 <john9999@example.com>: Recipient address rejected: User unknown in
> virtual alias table
>
> Why isn't die capturing the error?
>
Presumably it is getting the error before send returns, so it never
gets to the 'or die'. Are you assuming that die does something like
try-catch in other languages? For that you want to use eval or
the TryCatch module.
------------------------------
Date: Tue, 19 Jan 2010 15:30:24 -0600
From: brian d foy <brian.d.foy@gmail.com>
Subject: Re: FAQ 7.28 How do I clear a package?
Message-Id: <190120101530244375%brian.d.foy@gmail.com>
In article <lnzl4b9ucw.fsf@nuthaus.mib.org>, Keith Thompson
<kst-u@mib.org> wrote:
> I think this answer would be improved by explaining what it means to
> "clear" a package, and why one would want to do so (I can't think of a
> good reason off the top of my head).
If you don't know what it is, that's probably a good thing. :)
------------------------------
Date: Tue, 19 Jan 2010 18:03:03 -0800
From: Keith Thompson <kst-u@mib.org>
Subject: Re: FAQ 7.28 How do I clear a package?
Message-Id: <lnr5pl8re0.fsf@nuthaus.mib.org>
brian d foy <brian.d.foy@gmail.com> writes:
> In article <lnzl4b9ucw.fsf@nuthaus.mib.org>, Keith Thompson
> <kst-u@mib.org> wrote:
>> I think this answer would be improved by explaining what it means to
>> "clear" a package, and why one would want to do so (I can't think of a
>> good reason off the top of my head).
>
> If you don't know what it is, that's probably a good thing. :)
Well, I can tell what it is by looking at the code, but why would you
want to do that? Is the Question really Asked all that Frequently?
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
------------------------------
Date: Tue, 19 Jan 2010 15:38:17 -0600
From: brian d foy <brian.d.foy@gmail.com>
Subject: Re: FAQ 9.16 How do I decode a CGI form?
Message-Id: <190120101538172715%brian.d.foy@gmail.com>
In article <d8SdnaOysbG5P8_WnZ2dnUVZ_uudnZ2d@earthlink.com>, Mumia W.
<paduille.4061.mumia.w+nospam@earthlink.net> wrote:
> I upgraded to CGI.pm 3.48; I had no idea that I wasn't using the correct
> version; CGI.pm 3.29 (Debian Lenny) doesn't complain if you give it an
> unused/invalid option:
>
> use CGI qw/-utf44/; # There is no utf44; there is no complaint either.
There is no complaint because CGI.pm has a feature that turns
unrecognized symbols in the import list into new HTML generation
subroutines:
use CGI qw(-utf44);
print utf44( 'Foo' );
This gives you output with your new utf44 tag:
<utf44>Foo</utf44>
This feature, whether you like it or not, was there to support future
browser extensions.
------------------------------
Date: Tue, 19 Jan 2010 09:50:08 -0600
From: Ted Zlatanov <tzz@lifelogs.com>
Subject: Re: new dbi connection for each request under mod_perl
Message-Id: <87k4veksb3.fsf@lifelogs.com>
On Mon, 18 Jan 2010 05:39:03 -0800 (PST) david <michaelgang@gmail.com> wrote:
d> Hi all,
d> I have an application that i want to move to mod_perl.
d> My problem is that under the application i have a class variable that
d> makes caching of the database handler of dbi
d> This is how the class looks like
d> package Connection;
d> use DBI;
d> my $dbh;
d> sub instance {
d> if (!$dbh) {
d> $dbh = DBI->new;
d> }
d> return $dbh;
d> }
d> Before it was nice, because if in the same request i wanted to get
d> more than one connection it returned me the same.
d> But here in mod_perl i get for different requests the same dbh and the
d> application relies that it won't be the connection. For example, i
d> create temporary tables that are deleted automatically after each
d> request, because the connection expires, but now not.
d> What is the solution for this problem ?
I think (I'm not able to parse your message 100%) you want to use
Apache::DBI. No caching needed.
http://search.cpan.org/~abh/Apache-DBI/
Ted
------------------------------
Date: Tue, 19 Jan 2010 21:32:56 +0100
From: "Peter J. Holzer" <hjp-usenet2@hjp.at>
Subject: Re: Variable set to 0
Message-Id: <slrnhlc5np.jrq.hjp-usenet2@hrunkner.hjp.at>
On 2010-01-19 02:40, sreservoir <sreservoir@gmail.com> wrote:
> ~% perl -wle'print !1'
> Use of uninitialized value in print at -e line 1.
I suspect that your shell (csh?) is fooling you. If !1 is interpreted as
a history expansion and command 1 was empty the command really reads:
~% perl -wle'print '
which will produce the warning you see.
hp
------------------------------
Date: 19 Jan 2010 22:43:08 GMT
From: Glenn Jackman <glennj@ncf.ca>
Subject: Re: Variable set to 0
Message-Id: <slrnhlcdbu.7ak.glennj@smeagol.ncf.ca>
At 2010-01-19 03:32PM, "Peter J. Holzer" wrote:
> On 2010-01-19 02:40, sreservoir <sreservoir@gmail.com> wrote:
> > ~% perl -wle'print !1'
> > Use of uninitialized value in print at -e line 1.
>
> I suspect that your shell (csh?) is fooling you. If !1 is interpreted as
> a history expansion and command 1 was empty the command really reads:
Does csh really do history expansion inside single quotes? Wow, that
really is harmful.
--
Glenn Jackman
Write a wise saying and your name will live forever. -- Anonymous
------------------------------
Date: Tue, 19 Jan 2010 23:22:14 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: Variable set to 0
Message-Id: <6erh27-9m6.ln1@osiris.mauzo.dyndns.org>
Quoth Glenn Jackman <glennj@ncf.ca>:
> At 2010-01-19 03:32PM, "Peter J. Holzer" wrote:
> > On 2010-01-19 02:40, sreservoir <sreservoir@gmail.com> wrote:
> > > ~% perl -wle'print !1'
> > > Use of uninitialized value in print at -e line 1.
> >
> > I suspect that your shell (csh?) is fooling you. If !1 is interpreted as
> > a history expansion and command 1 was empty the command really reads:
>
> Does csh really do history expansion inside single quotes? Wow, that
> really is harmful.
It would appear so:
% csh
%echo
%echo '!1'
echo 'echo'
echo
%echo "!1"
echo "echo"
echo
%echo '\!1'
!1
%exit
Ben
------------------------------
Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>
Administrivia:
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
Back issues are available via anonymous ftp from
ftp://cil-www.oce.orst.edu/pub/perl/old-digests.
#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 V11 Issue 2779
***************************************