[22251] in Perl-Users-Digest
Perl-Users Digest, Issue: 4472 Volume: 10
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Mon Jan 27 14:06:48 2003
Date: Mon, 27 Jan 2003 11:05:06 -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 Mon, 27 Jan 2003 Volume: 10 Number: 4472
Today's topics:
byte array in perl, how? pack, unpack? java to perl (vientoloco)
Re: Changing the context of a code block <mjcarman@mchsi.com>
Re: Changing the context of a code block (Ben Morrow)
Entering backslashed values into variables when read in <hal@thresholddigital.com>
Re: Entering backslashed values into variables when rea <nobull@mail.com>
Re: Entering backslashed values into variables when rea (Tad McClellan)
Re: Entering backslashed values into variables when rea <hal@thresholddigital.com>
Re: How do I calculate today minus any given number (Sherman Willden)
Match operator clears @_ in functions called in s///e c <hakonrk@fys.uio.no>
Re: Match operator clears @_ in functions called in s// <pinyaj@rpi.edu>
Re: Match operator clears @_ in functions called in s// <hakonrk@fys.uio.no>
Re: Match operator clears @_ in functions called in s// (Anno Siegel)
Re: mod_perl instalation error (Randy Kobes)
Re: perl code to "fix" VBR mp3s with bogus time informa (Scott Evans)
Question about 64bit Integers in Perl (doug)
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 27 Jan 2003 10:42:26 -0800
From: vientoloco@msn.com (vientoloco)
Subject: byte array in perl, how? pack, unpack? java to perl
Message-Id: <e7f013a1.0301271042.759e1a6a@posting.google.com>
Hi,
This funtions are in java.
I'll try to find similar functions in perl.
Help, please :)
Any tutorial?
/**
* transforms a hexadecimal string to a byte array
* @return the byte array, or null if the passed String is null
* @exception IllegalArgumentException if the passed String is not
haxadecimal encoded
*/
public static byte[] fromHex(String hex) {
if (hex == null) {
return null;
}
else if ((hex.length() % 2) != 0) {
throw new IllegalArgumentException("Hex String length must be a
multiple of 2.");
}
int length = hex.length() / 2;
byte[] result = new byte[length];
String hits = "0123456789ABCDEF";
String h = hex.toUpperCase();
for (int i = 0; i < length; i++) {
char c = h.charAt(2 * i);
int index = hits.indexOf(c);
if (index == -1) {
throw new IllegalArgumentException("Hex String can't contain '"
+ c +"'");
}
int j = 16 * index;
c = h.charAt((2 * i) + 1);
index = hits.indexOf(c);
if (index == -1) {
throw new IllegalArgumentException("Hex String can't contain '"
+ c +"'");
}
j += index;
result[i] = (byte) (j & 0xFF);
}
return result;
}
/**
* transforms a byte array into a hexadecimal String
* @return the hexadecimal String, or null if the passed array is
null
*/
public static String toHex(byte[] b) {
if (b == null) {
return null;
}
String hits = "0123456789ABCDEF";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
int j = ((int) b[i]) & 0xFF;
char first = hits.charAt(j / 16);
char second = hits.charAt(j % 16);
sb.append(first);
sb.append(second);
}
return sb.toString();
}
S. C. Mikel B. H.
vientoloco@msn.com
------------------------------
Date: Mon, 27 Jan 2003 11:20:12 -0600
From: Michael Carman <mjcarman@mchsi.com>
Subject: Re: Changing the context of a code block
Message-Id: <b13poj$u5v5@onews.collins.rockwell.com>
On 1/27/03 9:07 AM, Steven Smolinski wrote:
> Eric Anderson <eric.anderson@cordata.net> wrote:
>> On Mon, 27 Jan 2003 10:45:51 +0000, Anno Siegel wrote:
>>>
>>> Not the variable is blessed, but the data it refers to
>>> (provided the variable contains a reference). Anonymous data
>>> structures can be objects too.
>>
>> I realize that anonymous data structures can be objects too.
>> I just don't use them often.
>
> Wow, that's practically all I've ever used, or seen used.
> Take this snippet from a contructor:
>
> my $self = { _option => $value };
> bless $self, $class;
> return $self;
I'd still consider that blessing a variable, as opposed to
return bless {_option => $value}, $class
which *must* bless the data, because there isn't a variable.
[Probably preaching to the choir here, but maybe a novice is lurking...]
The fact that it's the _data_ that's blessed is important. e.g.
our($foo, $bar);
$foo = Class::new();
*bar = \$foo; # make $bar an alias for $foo
$bar->method();
If $foo contained the blessing, you couldn't call method() from $bar.
Since it's the data $foo references that's blessed, you can.
I suppose that
$bar = $foo;
would have been a less contrived example, but people who expect a
variable to hold the blessing would expect assignment to copy it, and I
wanted to make it clear that wasn't happening. Playing with the symbol
table doesn't copy anything, though that is probably even more advanced
knowledge than what I was trying to demonstrate. Sorry for teaching in
reverse.
-mjc
------------------------------
Date: Mon, 27 Jan 2003 18:57:38 +0000 (UTC)
From: mauzo@mimosa.csv.warwick.ac.uk (Ben Morrow)
Subject: Re: Changing the context of a code block
Message-Id: <b13vf2$9rc$1@wisteria.csv.warwick.ac.uk>
Michael Carman <mjcarman@mchsi.com> wrote:
>On 1/27/03 9:07 AM, Steven Smolinski wrote:
>> Eric Anderson <eric.anderson@cordata.net> wrote:
>>> On Mon, 27 Jan 2003 10:45:51 +0000, Anno Siegel wrote:
>>>>
>>>> Not the variable is blessed, but the data it refers to
>>>> (provided the variable contains a reference). Anonymous data
>>>> structures can be objects too.
>>>
>>> I realize that anonymous data structures can be objects too.
>>> I just don't use them often.
>>
>> Wow, that's practically all I've ever used, or seen used.
>> Take this snippet from a contructor:
>>
>> my $self = { _option => $value };
>> bless $self, $class;
>> return $self;
>
>I'd still consider that blessing a variable, as opposed to
>
> return bless {_option => $value}, $class
>
>which *must* bless the data, because there isn't a variable.
>
>[Probably preaching to the choir here, but maybe a novice is lurking...]
>The fact that it's the _data_ that's blessed is important. e.g.
<snip>
>I suppose that
>
> $bar = $foo;
>
>would have been a less contrived example, but people who expect a
>variable to hold the blessing would expect assignment to copy it, and I
>wanted to make it clear that wasn't happening. Playing with the symbol
>table doesn't copy anything, though that is probably even more advanced
>knowledge than what I was trying to demonstrate. Sorry for teaching in
>reverse.
How about
my $a = \[];
bless $$a, $class;
print $$a;
then? Still rather obscure...
Ben
------------------------------
Date: Mon, 27 Jan 2003 17:26:49 GMT
From: Hal Vaughan <hal@thresholddigital.com>
Subject: Entering backslashed values into variables when read in from files
Message-Id: <sZdZ9.54020$VU6.45440@rwcrnsc52.ops.asp.att.net>
I'm not even sure what man or perldoc page to read for this. I'd appreciate
at least a pointer in the right direction.
I've got a program that reads in a configuration file with set commands and
values that follow the commands, like this:
set logfile /home/project/today.log
set lf \012
I have a routine that goes through and parses these and returns the value in
a string. In this case, it returns the "\012" in the string. Then I have
the set subroutine use this string to set a value, like this:
sub setvals {
my $line = shift(@_);
my ($command, $key, $val) = parse($line);
#
#If $line = "set lf \012" this will result in the following:
# $command = "set"
# $key = "lf"
# $val = "\012";
$config{$key} = $val;
return 1;
}
Now if I run this, then $config{lf} is literally equal to \012 -- not an
octal value, not a control code, but the four characters -- a backslash, a
zero, a one, and a two. However if I insert these line AFTER the comments
my $temp = length($val);
print "Value = $val, and length = $length\n";
it confirms that $val is ONLY those 4 characters and nothing else.
Now if I add this line AFTER the comments:
$val = "\012";
Then $config{$val} will be set equal to the control code, not equal to the
four character string.
So why is it that when I have the line I used in the program, it sets the
value in the control hash equal to a linefeed, but when it reads the same
value in from a file, it's a 4 character string and not evaluated as a
control code?
How can I read a line like this:
set lf \012
in from a file and translate that to a control code within the program?
Thanks!
Hal
------------------------------
Date: 27 Jan 2003 17:54:43 +0000
From: Brian McCauley <nobull@mail.com>
Subject: Re: Entering backslashed values into variables when read in from files
Message-Id: <u93cnexyu4.fsf@wcl-l.bham.ac.uk>
Hal Vaughan <hal@thresholddigital.com> writes:
> I'm not even sure what man or perldoc page to read for this.
You are not really asking about a feature of the language but how to
achieve a particular task in the language. As such you'd not expect
it to be covered in the language reference manuals (unless you
happened to get lucky and it was used as an example of how to use a
feature of the lanuage).
> I'd appreciate at least a pointer in the right direction.
This is, however, likely to be the sort of thing that people do a lot
in Perl and thus maybe it's frequently asked or even, maybe,
"Frequently Asked". I've looked in the FAQ and AFIACS it's not
"Frequently Asked". I've also done a groups.google.com search on
"process escapes group:comp.lang.perl.*" and it would appear that it
is at least moderately frequently asked.
> set lf \012
>
> I have a routine that goes through and parses these and returns the value in
> a string. In this case, it returns the "\012" in the string.
No it does not. It returns '\012' or "\\012".
> $val = "\012";
>
> So why is it that when I have the line I used in the program, it sets the
> value in the control hash equal to a linefeed, but when it reads the same
> value in from a file, it's a 4 character string and not evaluated as a
> control code?
This is because lines in Perl programs are interpreted according to
the syntax of the Perl programming language.
Lines read from data files are just read and not interpreted as Perl.
> How can I read a line like this:
>
> set lf \012
>
> in from a file and translate that to a control code within the program?
You need to decide on the grammar of your input file, then write some
code to implement that grammar. For examples see the results of the
aforementioned google search.
However, if you like the idea that your configuration file should be
parsed like Perl, then there's another solution you should consider,
that is turning your problem inside-out as I describe in:
Message-ID: <4dafc536.0105300857.243936ab@posting.google.com>
http://groups.google.com/groups?selm=4dafc536.0105300857.243936ab%40posting.google.com
--
\\ ( )
. _\\__[oo
.__/ \\ /\@
. l___\\
# ll l\\
###LL LL\\
------------------------------
Date: Mon, 27 Jan 2003 12:06:02 -0600
From: tadmc@augustmail.com (Tad McClellan)
Subject: Re: Entering backslashed values into variables when read in from files
Message-Id: <slrnb3at8a.27d.tadmc@magna.augustmail.com>
Hal Vaughan <hal@thresholddigital.com> wrote:
> I'm not even sure what man or perldoc page to read for this. I'd appreciate
> at least a pointer in the right direction.
I doubt that it is covered in perl's docs, because it is so fundamental.
In the first or second week of a first programming class, the
difference between what is code and what is data is taught.
It appears that you do not understand the difference. I'll try
and help you with that.
> I've got a program that reads in a configuration file with set commands and
> values that follow the commands, like this:
>
> set logfile /home/project/today.log
> set lf \012
Stuff you input from a file is "data".
Data is not subject to interpretation like "code" is.
What is in the file is what you get.
> Now if I run this, then $config{lf} is literally equal to \012 -- not an
> octal value, not a control code, but the four characters -- a backslash, a
> zero, a one, and a two.
That is As It Should Be.
> Now if I add this line AFTER the comments:
>
> $val = "\012";
>
> Then $config{$val} will be set equal to the control code, not equal to the
> four character string.
Because that 4-char sequence is "code" not "data".
The parser (perl) interprets what it sees there.
> So why is it that when I have the line I used in the program, it sets the
> value in the control hash equal to a linefeed,
Because it is "code".
> but when it reads the same
> value in from a file, it's a 4 character string and not evaluated as a
> control code?
Because it is "data".
> How can I read a line like this:
>
> set lf \012
>
> in from a file and translate that to a control code within the program?
You will need to supply the interpretation of what '\012' means yourself.
First, convert the octal number to decimal:
perldoc -f oct
Then convert the decimal number to the corresponding character:
perldoc -f chr
Assuming that the string (data) you've input is in the $_ variable:
s/\\(\d{3})/ chr oct $1 /ge;
--
Tad McClellan SGML consulting
tadmc@augustmail.com Perl programming
Fort Worth, Texas
------------------------------
Date: Mon, 27 Jan 2003 18:22:03 GMT
From: Hal Vaughan <hal@thresholddigital.com>
Subject: Re: Entering backslashed values into variables when read in from files
Message-Id: <eNeZ9.53891$_s4.37054@rwcrnsc54>
Brian McCauley wrote:
> Hal Vaughan <hal@thresholddigital.com> writes:
<snip>
>> set lf \012
>>
>> I have a routine that goes through and parses these and returns the value
>> in
>> a string. In this case, it returns the "\012" in the string.
>
> No it does not. It returns '\012' or "\\012".
>
Okay. I'm a bit confused. When I print it, I get \012 -- does that clarify
it at all?
>> $val = "\012";
>>
>> So why is it that when I have the line I used in the program, it sets the
>> value in the control hash equal to a linefeed, but when it reads the same
>> value in from a file, it's a 4 character string and not evaluated as a
>> control code?
>
> This is because lines in Perl programs are interpreted according to
> the syntax of the Perl programming language.
<ship>
> You need to decide on the grammar of your input file, then write some
> code to implement that grammar. For examples see the results of the
> aforementioned google search.
I guess, in a way, that's what I'm trying to do. But even if I have a
config file with as simple a line as:
lf=\012
then, according to what you say above (that Perl is interperting a line of
code differently than a line imported from a file), how can I tell Perl to
read \012 from a file as a control character? The only way I can think of
is a lookup table so when it sees that 4 character sequence in the file, it
matches it to a key in a hash that contains the actual character.
Isn't there a simple process for being able to read a line from a file that
contains \0xx and convert it to the actual control code?
I have a program that calls out to a number of different systems. While the
linefeed is the same in all systems, it's just an example here. I do have
control codes that change from system to system and I'm trying to have
config files for each system so I can store these different settings and
easily edit them in a text editor if I need to. That means I have a lot of
control codes for each system, so a config file with lines like:
lf=\012
or
set lf \012
is one of the easiest ways to import the settings for each system.
> However, if you like the idea that your configuration file should be
> parsed like Perl, then there's another solution you should consider,
> that is turning your problem inside-out as I describe in:
>
> Message-ID: <4dafc536.0105300857.243936ab@posting.google.com>
>
http://groups.google.com/groups?selm=4dafc536.0105300857.243936ab%40posting.google.com
>
Good point. I'm not trying to make a new language -- I am "subroutining
out" a bunch of calls and trying to let one module handle interaction with
different systems, but I still need a way to read a line w/ \012 (or
something like \n) and convert it to the corresponding perl control codes.
Is there a simple way to do this?
Thanks!
Hal
------------------------------
Date: 27 Jan 2003 08:40:17 -0800
From: sherman.willden@hp.com (Sherman Willden)
Subject: Re: How do I calculate today minus any given number
Message-Id: <3a80d8d6.0301270840.fcf52e2@posting.google.com>
Thanks, everyone, for the responses.
Sherman
------------------------------
Date: Mon, 27 Jan 2003 18:25:31 GMT
From: Haakon Riiser <hakonrk@fys.uio.no>
Subject: Match operator clears @_ in functions called in s///e context
Message-Id: <slrnb3aucr.47f.hakonrk@s.hn.org>
Take the following program:
sub echo {
"x" =~ /x/;
print "(@_)\n";
}
$0 =~ s/(.*)/echo($1)/e;
Run it with warnings enabled:
Use of uninitialized value in join or string at foo.pl line 3.
If I delete the line
"x" =~ /x/;
it works as expected. Why is this? It doesn't happen when I
call the function outside the substitution operator -- not even
inside an eval {}.
Thanks in advance.
--
Haakon
------------------------------
Date: Mon, 27 Jan 2003 13:35:36 -0500
From: Jeff 'japhy' Pinyan <pinyaj@rpi.edu>
To: Haakon Riiser <hakonrk@fys.uio.no>
Subject: Re: Match operator clears @_ in functions called in s///e context
Message-Id: <Pine.SGI.3.96.1030127133312.16190A-100000@vcmr-64.server.rpi.edu>
[posted & mailed]
On Mon, 27 Jan 2003, Haakon Riiser wrote:
> sub echo {
> "x" =~ /x/;
> print "(@_)\n";
> }
>
> $0 =~ s/(.*)/echo($1)/e;
The regex in echo() sets (or in this case, unsets) all the $1, $2, $3,
etc. variables. Because of the way Perl sends arguments to functions, the
$1 you send to the function is not the VALUE of $1, but the variable
itself. Watch:
"japhy" =~ /(\w\w)/; # so $1 is 'ja'
foo($1);
sub foo {
"perl" =~ /(\w\w)$/; # so $1 is 'rl'
print "args: $_[0]\n"; # args: rl
}
--
Jeff Pinyan RPI Acacia Brother #734 2003 Rush Chairman
"And I vos head of Gestapo for ten | Michael Palin (as Heinrich Bimmler)
years. Ah! Five years! Nein! No! | in: The North Minehead Bye-Election
Oh. Was NOT head of Gestapo AT ALL!" | (Monty Python's Flying Circus)
------------------------------
Date: Mon, 27 Jan 2003 18:43:53 GMT
From: Haakon Riiser <hakonrk@fys.uio.no>
Subject: Re: Match operator clears @_ in functions called in s///e context
Message-Id: <slrnb3avf9.47f.hakonrk@s.hn.org>
[Jeff 'japhy' Pinyan]
> The regex in echo() sets (or in this case, unsets) all the $1, $2, $3,
> etc. variables. Because of the way Perl sends arguments to functions, the
> $1 you send to the function is not the VALUE of $1, but the variable
> itself.
Actually, I knew that the arguments are call-by-reference but it
never occured to me that it could be the problem in this case --
I've always thought that $1, $2, and so on were lexically scoped.
Thanks!
--
Haakon
------------------------------
Date: 27 Jan 2003 18:54:37 GMT
From: anno4000@lublin.zrz.tu-berlin.de (Anno Siegel)
Subject: Re: Match operator clears @_ in functions called in s///e context
Message-Id: <b13v9d$s16$1@mamenchi.zrz.TU-Berlin.DE>
Haakon Riiser <hakonrk@fys.uio.no> wrote in comp.lang.perl.misc:
> Take the following program:
>
> sub echo {
> "x" =~ /x/;
> print "(@_)\n";
> }
>
> $0 =~ s/(.*)/echo($1)/e;
>
> Run it with warnings enabled:
>
> Use of uninitialized value in join or string at foo.pl line 3.
>
> If I delete the line
>
> "x" =~ /x/;
>
> it works as expected. Why is this? ...
The match operation doesn't clear @_, it clears $1 (and friends). This
has a somewhat surprising effect on @_ because its first (and only)
element is an alias to $1: What happens to $1 also happens to $_[ 0].
If you write the match operation as '"x" =~ /(x)/' you will find the
newly captured "x" in @_.
The solution is to put the disturbing match in a block by itself.
$1, etc are automatically localized to the block and on return the
previous value is restored.
Let me add that you did an excellent job in condensing the problem
to a small runnable program, stating the expected behavior and the
observed one. That makes it possible to come up with a reasonably
complete answer in a reasonable amount of time.
Anno
------------------------------
Date: 27 Jan 2003 17:39:20 GMT
From: randy@theoryx5.uwinnipeg.ca (Randy Kobes)
Subject: Re: mod_perl instalation error
Message-Id: <slrnb3arbd.bqi.randy@theoryx5.uwinnipeg.ca>
On 26 Jan 2003 12:51:06 -0800,
Daniel Gooderidge <dgooderidge@powerup.com.au> wrote:
>Hi,
>
>I don't know if this is a bug or not but I keep getting
>the same error when I compile mod_perl v2.
>
>[root@fsln1 src]# cd mod_perl-1.99_07
>[root@fsln1 mod_perl-1.99_07]# perl Makefile.PL
>MP_AP_PREFIX=/usr/local/apache2/current/ MP_INST_APACHE2=1
>Reading Makefile.PL args from @ARGV
> MP_AP_PREFIX = /usr/local/apache2/current/
> MP_INST_APACHE2 = 1
>Configuring Apache/2.0.44 mod_perl/1.99_07 Perl/v5.8.0
>Checking if your kit is complete...
>Looks good
> generating script t/TEST
>Checking if your kit is complete...
>Looks good
>Writing Makefile for Apache::Test
> generating script t/TEST
>Checking if your kit is complete...
>Looks good
>Writing Makefile for ModPerl::Registry
>Writing Makefile for API
>#
>#removed for clarity
>#
>Note (probably harmless): No library found for -lapr
>Note (probably harmless): No library found for -laprutil
[ .. ]
Assuming that /usr/local/apache2/current/ is the base
target used when installing apache, and so the libraries
are really under there in the standard locations, you
might want to try the mod_perl 2.0 cvs sources:
http://perl.apache.org/download/source.html
in which a fix for a similar-sounding bug has been made.
--
best regards,
randy kobes
------------------------------
Date: 27 Jan 2003 09:20:16 -0800
From: gse@antisleep.com (Scott Evans)
Subject: Re: perl code to "fix" VBR mp3s with bogus time information?
Message-Id: <ac991c1.0301270920.321ec259@posting.google.com>
echoing my thoughts exactly, yf110@vtn1.victoria.tc.ca (Malcolm Dew-Jones) wrote:
> Matthew Lockner (lockner@cse.psu.edu) wrote:
> : Did you already check CPAN? Try going to http://search.cpan.org/ and
> : entering "VBR" as your query to pull up a list of possibly-relevant
> : modules. Looks like MP3::Info and Audio::MPEG might be worth a look.
>
> Did you look at these modules? They don't seem to mention anything about
> fixing bogus data.
They sure don't.
In fact, Matthew, yes, I have searched CPAN but couldn't find anything.
I already use MP3::Info for my little mp3-library management scripts,
so I tried dsome reverse engineering of "broken" and "fixed" mp3 files
using MP3::Info, but I wasn't able to come up with anything
useful/conclusive.
> : If
> : nothing helps, you can always try to write the code you want yourself (and
> : if it actually works, think about putting it in CPAN).
>
> I think that was what he was trying to avoid having to do.
Yes, exactly. That's a wheel I don't feel like reinventing unless it's
absolutely necessary. Which is why I posted the original post.
(I always wonder why people follow up when they don't have an answer...)
scott
------------------------------
Date: 27 Jan 2003 09:04:06 -0800
From: doug.portz@mts.mb.ca (doug)
Subject: Question about 64bit Integers in Perl
Message-Id: <bff1479d.0301270904.13bcb2fa@posting.google.com>
Hi,
let me say right off the bat, I know nothing about Perl.... but I do
have a question I am hoping someone can answer.
We currently have a Perl program that manages an SNMPT application.
we wantto change from 32 bit to 64 bit integers - which we can do
pretty easy. but I have heard that getting perl to accept a 64bit
integer may be difficult.
Can someone confirm with me whether it is easy to change a Perl
program to accept a 64 bit integer, if so are there limitations?
Thanks
Doug
Please reply via email as well if possible (news access at work is
limited)
reply to 123doug.portz@mts.ca (REMOVE 123 before replying)
------------------------------
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:
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.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.
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 V10 Issue 4472
***************************************