[10588] in Perl-Users-Digest
Perl-Users Digest, Issue: 4180 Volume: 8
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Mon Nov 9 12:07:40 1998
Date: Mon, 9 Nov 98 09:00:27 -0800
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, 9 Nov 1998 Volume: 8 Number: 4180
Today's topics:
Re: $a = $a <uri@sysarch.com>
Re: 2nd posting: why do I get in this case: "untie atte <rootbeer@teleport.com>
Re: Array problems for newbie <tim.hicks@lineone.net>
Array-Hash-Problem nomam@my-dejanews.com
Re: Can anyone help with my globs?? (Tad McClellan)
Re: Can anyone help with my globs?? (Eisen Chao)
Re: Change in string <garethr@cre.canon.co.uk>
Re: Command Line Parameters? jkane@my-dejanews.com
DBD Oracle / Perl Problem <pecus@civil.ist.utl.pt>
expect <michaelr@lndn.tensor.pgs.com>
Re: file sorting sar files in AIX dkoleary@wwa.com
HELP , I just can figure this out (John Hardy)
HELP w/ Perl & PC Parallel Port (Wendy Allison Verschoor)
Re: IIS4, Perl, Object Moved <support@acuity.com>
Re: List of files to an array... (I R A Aggie)
Re: mod_perl question <rootbeer@teleport.com>
Re: net::nntp <dgris@rand.dimensional.com>
Not possible to compile Perl w/gcc <mikane@shell3.ba.best.com>
Re: Not to start a language war but.. <zenin@bawdycaste.org>
Re: Not to start a language war but.. <garry@sage.att.com>
ODBC problem........ <ours@casema.net>
PERL <s.gontier@dl.ac.uk>
Re: Poor performance processing a file <rootbeer@teleport.com>
Re: regexp for IP address / host-domain <rootbeer@teleport.com>
Re: Removing ^K <uri@sysarch.com>
Re: Resource for activescpiting in perl <rootbeer@teleport.com>
Security - How to circumvent it. asitmain.tperry@email.state.ut.us
Re: Sendmail-code needed (M.)
Setting/Getting value in an Hash of Hash... <sylvain@macadamian.com>
STANDARD PERL for WIN 95/NT EXECUTABLE (Johannes Poehlmann)
Re: syslog msg format? <rootbeer@teleport.com>
Weird core dumps with DBD::Oracle -> possible bug? <ajit@skycorp.net>
Special: Digest Administrivia (Last modified: 12 Mar 98 (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 08 Nov 1998 17:37:29 -0500
From: Uri Guttman <uri@sysarch.com>
Subject: Re: $a = $a
Message-Id: <x7emrddd5i.fsf@sysarch.com>
>>>>> "RS" == Randal Schwartz <merlyn@stonehenge.com> writes:
>>>>> "Gareth" == Gareth Rees <garethr@cre.canon.co.uk> writes:
Gareth> Todd Smith <tbsmith@viper.net> wrote:
>>> If Perl saw this line, would it do some assignment or ignore it like
>>> it would a comment?
>>>
>>> $a = $a;
Gareth> If Perl always optimised away this line, then the resulting
Gareth> code would be incorrect. When $a is a tied scalar I expect
Gareth> the code $a = $a; to call the FETCH and STORE methods of the
Gareth> class $a is tied to.
RS> This could also be the last expression evaluated in a value-ful block,
RS> and thus have an impact on the return value (like from a subroutine,
RS> eval-block, or do-block).
RS> So, no, we can't completely toss this.
other than those good reasons why perl won't optimize it away, why would
you write something that effectively is a no-op (excepting tied scalars
or overloads)? you should optimize it out yourself! :-)
uri
--
Uri Guttman ----------------- SYStems ARCHitecture and Software Engineering
Perl Hacker for Hire ---------------------- Perl, Internet, UNIX Consulting
uri@sysarch.com ------------------------------------ http://www.sysarch.com
The Best Search Engine on the Net ------------- http://www.northernlight.com
------------------------------
Date: Sun, 08 Nov 1998 21:01:44 GMT
From: Tom Phoenix <rootbeer@teleport.com>
Subject: Re: 2nd posting: why do I get in this case: "untie attempted..."
Message-Id: <Pine.GSO.4.02A.9811081300460.14028-100000@user2.teleport.com>
On Sun, 8 Nov 1998 ronald_f@my-dejanews.com wrote:
> Why do I get this message in the following program? I can not see why
> there should still exist a pending reference!
Maybe it's a bug in Perl. Cut your code down to the smallest possible
standalone example, without using other modules, if possible, then file a
bug report using perlbug. Thanks!
--
Tom Phoenix Perl Training and Hacking Esperanto
Randal Schwartz Case: http://www.rahul.net/jeffrey/ovs/
------------------------------
Date: Mon, 9 Nov 1998 15:01:54 -0000
From: "Tim Hicks" <tim.hicks@lineone.net>
Subject: Re: Array problems for newbie
Message-Id: <2vD12.54$I13.78@news-reader.bt.net>
Thanks very much to everybody for your help
Tim
------------------------------
Date: Mon, 09 Nov 1998 16:43:50 GMT
From: nomam@my-dejanews.com
Subject: Array-Hash-Problem
Message-Id: <727646$ece$1@nnrp1.dejanews.com>
Hi togehther,
I'm a Perl-Newbie and I have the following problem.
I need an array of hashes, so that I can access the elements like this:
print "Name: $item->{'name'}: Size $item->{'size'}";
what I did:
%element = (
'name' = $name,
'size' = $size
);
push(@my_array, \%element);
foreach $item (@my_array) {
print "Name: $item->{'name'}: Size $item->{'size'}";
}
Maybe there is a much better way to solve this problem.
I would be very pleased to get a tip
Thanks Andy
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
------------------------------
Date: Mon, 9 Nov 1998 07:55:01 -0600
From: tadmc@flash.net (Tad McClellan)
Subject: Re: Can anyone help with my globs??
Message-Id: <l7s627.va5.ln@flash.net>
dccobb@yahoo.com wrote:
: I am having a few problems with the glob routine in Perl, here is my script:
: @x = glob('*.htm');
: print "Content-type: text/html\n\n";
: print "test";
: print $x;
: (I just want to list all .htm files)
You should always, yes *always*, enable warnings in every
perl script.
#!/usr/bin/perl -w
That would have pointed out to you that $x was never given
a value.
You put the filenames in @x, so that is where you should
go to get them ;-)
@x and $x are not related at all.
foreach (@files) { # use a variable name that means something
print "$_\n";
}
--
Tad McClellan SGML Consulting
tadmc@metronet.com Perl programming
Fort Worth, Texas
------------------------------
Date: 9 Nov 1998 16:31:16 GMT
From: echao@interaccess.com (Eisen Chao)
Subject: Re: Can anyone help with my globs??
Message-Id: <7275ck$7c8$1@supernews.com>
dccobb@yahoo.com wrote:
: I am having a few problems with the glob routine in Perl, here is my script:
:
: @x = glob('*.htm');
: print "Content-type: text/html\n\n";
: print "test";
: print $x;
What is $x ? There's nothing in your script that
says $x is in anyway connected to @x.
You *could* say something like:
print "test";
foreach $x(@x) {
print "$x\n";
}
(or for that matter foreach $mumbojumbo(@x) {
print "$mumbojumbo\n";
}
: (I just want to list all .htm files)
:
: When ran from the command prompt on a Win 98 based PC with an Omnicron Web
: server on 127.0.01 the following is displayed:
:
: Bad command or file name
: test
:
: The same applies when ran on Hypermarts site under a Unix OS.
:
: Both Operating Systems have Perl 5, so why doesn't glob work??
:
: Any help would be appreciated, Cheers
:
: --
: "Everything should be as simple as possible, but no simpler",
: Albert Einstein.
:
: -----------== Posted via Deja News, The Discussion Network ==----------
: http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
------------------------------
Date: Mon, 9 Nov 1998 15:07:48 GMT
From: Gareth Rees <garethr@cre.canon.co.uk>
Subject: Re: Change in string
Message-Id: <sig1bssy4b.fsf@cre.canon.co.uk>
"Roderik Valcke" <vhti-katho@unicall.be> wrote:
> How can I change hex "0D 0A" to "0A" in a string?
perldoc perlop lists string escapes, including
\x1b hex char
so you can change hex 0d 0a to 0a using the substitution
s/\x0d\x0a/\x0a/
--
Gareth Rees
------------------------------
Date: Mon, 09 Nov 1998 14:56:09 GMT
From: jkane@my-dejanews.com
Subject: Re: Command Line Parameters?
Message-Id: <726vq9$8kk$1@nnrp1.dejanews.com>
In article <3645CF26.DD2ED35@erols.com>,
Ken Timlin <ktimlin@erols.com> wrote:
> Please excuse this if the answer is obvious but how
> do I pass parameters from the command line to my Perl
> script? I want to pass it two strings in the following
> manner:
>
> /usr/bin/myprogram string1 string2
>
> When I try this, whatever I pass to my program is
> always interpreted as a file name.
I am now to perl, but this is very similiar to shell programming.
Here is an example I use. I have to have arguments in pairs, so I do a check
for an even number of arguments. You could delete that part.
------------------------
# If there is anything in <ARGV>. i.e. command line arguments.
if (<@ARGV>) {
# If there are not an even number of arguments, it MUST be wrong. # Number
of args left, plus the current one, give the remainder divided by 2. if
(($#ARGV+1)%2) {
die "\nYou entered an odd number of arguments. ( ",$#ARGV+1,
" )\n\n$ErrorMsg\n";
} # End if odd number of arguments.
# Assign the command line arguments in pairs to %Type.
%Type = @ARGV;
# Set a flag to use later.
$UseCommandLine = 1;
# If no arguments, use the default directories, files, and keys.
} else { # Else for no command line arguments.
# .... I put some defaults here to set when no parameters are passed.
}
-----------------------------------------------
Instead of a %Type, you could use @Type, but, that would be redundant since
@ARGV already exists! ;^{ )
Or, If you want switch type parameters, you could do something different. I
only have one switch so far, but with the shift, you could process any number
of parameters.
--------------------------------------------------
########################### ONLINE HELP ################################
# If someone wants to, they can add -h or -help and get some information
# without editing this program.
# Look at the command line arguments. If the first one starts with a "-"
# strip off the "-" and assign it to $1.
while ( $ARGV[0] =~ /^-(.*)/ ) {
$_ = $1; # Make arg the default ($_) variable.
$_ =~ tr/A-Z/a-z/; # Translate it to all lower case.
# If the argument (default variable $_) was h, help, or ? ...
if (/h$|help$|\?$/) {
# Output some help screens. Then die.
print "\n$Help\nPress Enter to continue ...\n";
$Enter = <STDIN>;
die "$Usage\n";
} else { # Else for while first argv has a -.
# If the argument wasn't for help, tell user, and die with error msg.
die "\nI don't understand the argument \"$ARGV[0]\".\n\n$ErrorMsg\n";
} # End if help.
# This really is not valid. If they asked for help, why process # the
rest of the line??? Besides, the above was changed from print # to die, so
it will no longer get this far!! # Someday you may want more than one
-argument, then this will be needed. # How about a -v (verbose) mode?
shift; # Just in case it makes it this far. Die if there is nothing left. #
If there are no more command line arguments, it will run the defaults! # It
may be normal to have nothing. That will be up to whoever adds # more
arguments to the program. Then this should NOT die. unless ($ARGV[0]) {die
"Not continuing after help message.\n\n$ErrorMsg\n";}
} # End while looking for "-".
######################## END ONLINE HELP ###############################
------------------------------------------
Change the dies to just print statements, and process the next argument via
the shift operator. You can use next to skip on to the next argument also if
you like. Just keep doing what you like to each of the arguments then when
done loking at them, run your program. You would not want todo ANY of the
"die" commands I am using because you actually want to use the arguments.
Hope this starts the wheels turning again. I am sure there are lots more ways
to do the same thing. Probably better/faster ways, since I am a beginner.
Not exactly what you asked for, but this is as far as I have gotten with
processing command line arguments. I am sure you could use some kind of while
(@ARGV) {things to do to it;shift or next;} kind of code to get what you want
out of it.
Good luck.
-Jeff Kane
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
------------------------------
Date: Sun, 08 Nov 1998 21:12:57 +0000
From: Pedro Miguel Custodio <pecus@civil.ist.utl.pt>
Subject: DBD Oracle / Perl Problem
Message-Id: <36460958.4F7D67B7@civil.ist.utl.pt>
Hi!
I'm experiencing some problems with oracle. I'm trying to connect a
simple
perl script to an Oracle Server. But since i know nothing (well almost)
nothing
about Oracle i can't figure out what's the problem.
I know this is not the best place for this message. Thanks to all of you
u can
give some kind of help.
Here's the script:
###########################################################
#!/usr/local/bin/perl
use DBI;
use strict;
#------------------------------------------------
# Testa a existencia de um utilizador com essa ID
#------------------------------------------------
delete $ENV{ORACLE_SID};
#TCP/IP
my $dbh = DBI->connect('dbi:Oracle:T:<machine_ip>','user/passwd') or die
$DBI::errstr;
#PIPES
#my $dbh = DBI->connect('dbi:Oracle:P:SID','user/passwd') or die
$DBI::errstr;
$dbh->{RaiseError}=1;
my $sth = $dbh->prepare("select * from testes");
$sth->execute or warn "Can't execute select1.";
if ($sth->rows)
{
(my $id, my $nome) = $sth->fetchrow;
print "USER: $id => $nome \n\n";
}
$dbh->disconnect;
exit;
###########################################################
But when i try to execute it i got the following error message:
ORA-06401: NETCMN: invalid driver designator (DBD: login failed) at
./ora.pl line 16
ORA-06401: NETCMN: invalid driver designator (DBD: login failed) at
./ora.pl line 16.
Again, Thanks.
Pedro
-----------------------------------
Pedro Miguel Custodio
pecus@civil.ist.utl.pt
------------------------------
Date: Mon, 09 Nov 1998 15:21:51 +0000
From: Michael Renshaw <michaelr@lndn.tensor.pgs.com>
Subject: expect
Message-Id: <3647088F.5ACF@lndn.tensor.pgs.com>
has anyone used the expect module is perl ? if so heres a quick Q
Im spawned a telnet session to a remote server. I then want to
spawn an ftp session to another server. the spawn command
doesnt die yet i never get a login prompt for ftp and the script
times out. i can do the whole thing interactively so
i know it should work. can i do multiple spawn commands and hop
from server to server in this way and still expect the script to
pick up prompts or is there some termial type command that i
will keep needing to set to get the prompts ?
thanx
Mike
------------------------------
Date: Sun, 8 Nov 98 19:21:39 GMT
From: dkoleary@wwa.com
Subject: Re: file sorting sar files in AIX
Message-Id: <724r3n$ah5$1@hirame.wwa.com>
Despite the many things that you can do with Perl, this is probably one of
the things you don't want to do.
I set up my sar files to be named saMMDD as well; the best way that I've
found is to do if from the sadc commmand line that is in root's or adm's
crontab. Setting it up this way means that you'll have to include the -f
command line on all sar command lines; however, that's a small price to pay
to be able to keep the sar stats for a full year.
Now, using Perl to analyze the sar stats and present decent reports - that's
something that Perl should excel at. That should prove an interesting
learning experience....
Hope this helps.
Doug O'Leary
------------------------------
Date: Mon, 09 Nov 1998 01:11:23 GMT
From: jhardy@cins.com (John Hardy)
Subject: HELP , I just can figure this out
Message-Id: <%ir12.1231$b03.607941@198.235.216.4>
I just can't seem to figure this thing out.
I am trying to pass the values from the hash %linesin to the Procedure
CandidateINS. I have been going nuts over this for days. No matter what I do it
gags at
$CMD->Parameters("lname")->{value}=$linesin{$lname};
I have tried several hundred variations of this script with no success. Help
would be appreciated!
The error I am now getting is use of uninitialized variable. A value used as
either a hard refernce or
symbolic reference must be a defined value. Can't use an undefined value as a
Hash reference.
use diagnostics; ## Use
Diagnostics module for debugging
use OLE; ## Call OLE
module
use Win32::ADO; ## Call ADO
module
my ($LOCK_EX);
$LOCK_EX = 2;
$file = 'VVarin'; #Name
the file
open(INFO, $file) or die "Couldn't open INFO file"; # Open
the file
flock (INFO, $LOCK_EX) || bail ("cannot flock $file: $!"); # lock
it
while ( <INFO> ) {
chomp;
( $key, $value ) = split /:/; # read
file in
$linesin{$key}=$value;
};
close(INFO);
foreach $key (sort keys %linesin ) {
$value=$linesin{$key};
#$key=join('.',$TableName,$key); ##add the table name to
the field name
#print "$value\n"; ## here for debugging
purposes
};
$Conn = CreateObject OLE "ADODB.Connection"; ## Create connection
Object
$CMD = CreateObject OLE "ADODB.Command"; ## Create Command
Object
$rs = CreateObject OLE "ADODB.Recordset"; ## Create Recordset
Object
$Conn->Open("DSN=iHRS;UID=sa;PWD="); ## Use the connection
Object to Connect to the Database
$Conn or die "Cannot Connect";
$CMD->{ActiveConnection}=$Conn;
$CMD->{CommandText}="CandidateINS"; ## set CommandText
attribute of Command object into
## CandidateINS
procedure
$CMD->{CommandType}=1;
$CMD->Parameters("lname")->{value}=$linesin{$lname};
#$CMD->Execute;
#$RS=$CMD->EXECUTE;
#$RS->Close;
$Conn->Close;
#}
------------------------------
Date: 8 Nov 1998 19:35:11 GMT
From: verscw@rpi.edu (Wendy Allison Verschoor)
Subject: HELP w/ Perl & PC Parallel Port
Message-Id: <724rpf$1h00$1@newsfeeds.rpi.edu>
Hello,
I need some help on a project.
I'm trying to use the parallel port on my PC to drive some other
electronics for a design project in a class. I want to be able to
send out a number over 4 output pins of the port to a 4x16 encoder,
which will trigger a few other things. Later on, I'd read in a signal
on an input line/pin to tell me the state of what's going on. I'd
like to do this program in Perl if at all possible, but I'm not sure
how to do this, if Perl even can.
I'd appreciate any help anyone can give me.
Thanks,
Wendy
--------------------
Wendy Verschoor
verscw@rpi.edu
------------------------------
Date: Mon, 09 Nov 1998 09:13:15 -0600
From: John Warner <support@acuity.com>
To: Ron Parker <sysop@scbbs.com>
Subject: Re: IIS4, Perl, Object Moved
Message-Id: <3647068B.2E0E916C@acuity.com>
The other thing to keep in mind is that IIS 4 requires the host: some-hostname line in
the HTTP header you send to it. If you forget this line, many, if not all of your scripts
will fail. I learned this one the hard way when trying to write a script to work with our
IC product line and a web server other than the one we developed. Ours is designed to do
just enough to get the job done (we're not a web server company) and as a consequence,
does non-standard things such as not requiring the host line in the HTTP header. Net
result, some of my scripts failed miserably when run against our product running with our
IIS plug-in.
Just my two cents worth.
John Warner
Acuity Technical Support
------------------------------
Date: Sun, 08 Nov 1998 11:53:55 -0500
From: fl_aggie@thepentagon.com (I R A Aggie)
Subject: Re: List of files to an array...
Message-Id: <fl_aggie-0811981153550001@aggie.coaps.fsu.edu>
In article <36438B10.7CED@ford.com>, Stan Towianski <stowians@ford.com> wrote:
+ I do something like this (where $fpath_to = a directory path):
To coin a phrase: oh, ick!
+ $cc = "ls -al " . $fpath_to;
+ #print "cmd to do: =$cc=\n";
+ #print "output =", `$cc`;
+ @out = `$cc`;
+ $maxr = scalar( @out );
+ $col = 0;
+ for( $r = 0; $r < $maxr; $r++ )
+ {
+ #print "out [", $r, "] =$out[$r]= len =$maxr\n";
+ @rc = split /\s{1,}/, $out[$r];
+ ...
How about:
opendir(DIR,$fpath_to) or die $!;
@files=readdir(DIR); # use '@files=grep /some_pattern/, readdir(DIR) for
# greater selectivity
closedir(DIR); # I like making things neat...
At this point, @files will contain the file list for $fpath_to.
My understanding is that backticks will invoke a shell, so there are some
(in this case, small) perfomance issues. And as perlop states:
Also realize that using this operator frequently
leads to unportable programs.
James
------------------------------
Date: Sun, 08 Nov 1998 20:53:45 GMT
From: Tom Phoenix <rootbeer@teleport.com>
Subject: Re: mod_perl question
Message-Id: <Pine.GSO.4.02A.9811081251550.14028-100000@user2.teleport.com>
On Sun, 8 Nov 1998, Craig Sprout wrote:
> "Can't locate object method "request" via package "Apache" at
> /cgi-bin/myscript.pl line 2."
Have you seen what perldiag says about this message?
> #!/usr/bin/perl
> my $r = Apache->request;
I suspect that you meant to put a 'use' directive before that line. Check
the docs for the modules you're using. Good luck!
--
Tom Phoenix Perl Training and Hacking Esperanto
Randal Schwartz Case: http://www.rahul.net/jeffrey/ovs/
------------------------------
Date: 08 Nov 1998 14:10:15 -700
From: Daniel Grisinger <dgris@rand.dimensional.com>
Subject: Re: net::nntp
Message-Id: <m3btmhhow8.fsf@rand.dimensional.com>
Ron Parker <sysop@scbbs.com> writes:
> Where can I find an example of a script used to fetch
> newsgroups/articles? I looked at www.cpan.org, also did a perldoc
> net::nntp, but cannot find actual script examples.
You were really close. Perl is case sensitive, try
Net::NNTP.
dgris
--
Daniel Grisinger dgris@rand.dimensional.com
Supporter of grumpiness where grumpiness is due on clpm.
perl -Mre=eval -e'$_=shift;;@[=split//;;$,=qq;\n;;;print
m;(.{$-}(?{$-++}));,q;;while$-<=@[;;' 'Just Another Perl Hacker'
------------------------------
Date: 09 Nov 1998 16:34:57 GMT
From: <mikane@shell3.ba.best.com>
Subject: Not possible to compile Perl w/gcc
Message-Id: <364719b1$0$12755@nntp1.ba.best.com>
If I am wrong I would like someone to correct me.
I'm trying to compile the latest Perl distribution
(from www.perl.com) on Solaris x86 with the latest
gcc and the latest GNUmake.
During the make process, a command "wlib" is called.
"wlib" is the Watcom Library Manager that does not come
with gcc or GNUmake. It appears I have to purchase
a commercial compiler to get an obscure utility "wlib"
Out of desparation, I called Sybase who purchased the Watcom
compiler and they say Watcom is not available for Solaris
x86.
Needless to say I am frustrated and dissapointed.
Any help would be appreciated.
Mike
------------------------------
Date: 09 Nov 1998 15:11:19 GMT
From: Zenin <zenin@bawdycaste.org>
Subject: Re: Not to start a language war but..
Message-Id: <910624061.253792@thrush.omix.com>
Garrett G. Hodgson <garry@sage.att.com> wrote:
: Zenin wrote:
>snip<
: > If the "Purer OO" languages could agree on any of this (Python has
: > except: while Java has catch, etc) I might give you more points
: > here. But they don't, so I can't.
:
: the keywords differ, the concepts are the same.
Exactly! You're catching on! :-)
--
-Zenin (zenin@archive.rhps.org) From The Blue Camel we learn:
BSD: A psychoactive drug, popular in the 80s, probably developed at UC
Berkeley or thereabouts. Similar in many ways to the prescription-only
medication called "System V", but infinitely more useful. (Or, at least,
more fun.) The full chemical name is "Berkeley Standard Distribution".
------------------------------
Date: Mon, 09 Nov 1998 11:13:37 -0500
From: "Garrett G. Hodgson" <garry@sage.att.com>
Subject: Re: Not to start a language war but..
Message-Id: <364714B1.616CE315@sage.att.com>
John Porter wrote:
>
> Garrett G. Hodgson wrote:
> > i guess when i think data structures, i'm thinking more about higher
> > level constructs like those in the Gang of Four design patterns book.
> > something like the Visitor pattern, f'rinstance.
>
> That's all well and good, considering you didn't ask the question
> to which Tom C was responding.
pardon me. i didn't realize it was a private party.
> As for "higher level constructs", like Patterns, Perl is more than
> adequate (if not entirely ideal) as an implementation language.
i guess that's what i was fishing for; should've been more clear.
i've seen little evidence of people using perl for this kind of stuff.
--
Garry Hodgson too much fun...that's news to me
garry@sage.att.com too much fun...how could it be?
Software Innovation Services a whole lotta things that
AT&T Labs i ain't never done
i ain't never had too much fun
------------------------------
Date: Mon, 9 Nov 1998 17:23:14 +0100
From: "Casema" <ours@casema.net>
Subject: ODBC problem........
Message-Id: <727503$hjp$1@sun4000.casema.net>
Hi newsgroup,
I am trying to explore Dave Roth's ODBC module with following code and get
this error message:
Can't locate object method "new" via package win32:ODBC at data.pl line 3
Can you help? And most important, would you????
Code:
use WIN32::ODBC;
my($db) = new WIN32::ODBC('base');
$db->Sql("SELECT * FROM News");
while ($db->Fetchrow()) {
my(%data) = $db->DataHash();
print "content-type: text/html", "\n\n";
print "<HTML><BODY>\n";
print "<TR><TD>$data{'ID'} id-nummer";
print " <TD>$data{'date'} Datum";
print " <TD>$data{'time'} Tijd";
print " <TD>$data{'head'} Header";
print " <TD>$data{'news'} Nieuws";
}
$db->Close();
print "</BODY></HTML>";
Obviously I'm trying to extract data from base.mdb, located in my perl/bin
directory.
I am using perl5.004.002 on windows98........
thanks,
Michel
------------------------------
Date: Mon, 09 Nov 1998 14:46:27 +0000
From: Sebastien Gontier <s.gontier@dl.ac.uk>
Subject: PERL
Message-Id: <36470043.20D1D2E4@dl.ac.uk>
Hi!!
Does someone know why I have got this problem configuring Perl 5.00404
on UNIX...
"ld32: ERROR 33: Unresolved text symbol "pow" --1st referenced by
libperl.a(pp.o).
*** Error code 1 (bu21)"
after the command "sh Configure -Dcc=gcc" and "make" ???
Thank you for your answer
------------------------------
Date: Sun, 08 Nov 1998 22:41:27 GMT
From: Tom Phoenix <rootbeer@teleport.com>
Subject: Re: Poor performance processing a file
Message-Id: <Pine.GSO.4.02A.9811081436530.14028-100000@user2.teleport.com>
On Sun, 8 Nov 1998, Torquil Chapman wrote:
> Initially, performance is exceptionally good and I'm able to process
> the first 10,000 lines in 1 minute. The next 10,000 lines take about
> two minutes and so on.
Could you be using more and more memory each time through the loop? That
could cause a slowdown.
> I assume that the slowest part of the operation is the IO,
> particularly the writes but what can I do to speed them up?
That may or may not be a valid assumption. You may want to use the
profiler to find out what's really slow.
> open MY_FILE_HANDLE ">$my_file_name";
Even when your script is "just an example" (and perhaps especially in that
case!) you should _always_ check the return value after opening a file.
> while (!(eof $my_input_file)) {
> $line_of_file = chop <$my_input_file>
That's not the way to do it. See the examples in the docs. Hope this
helps!
--
Tom Phoenix Perl Training and Hacking Esperanto
Randal Schwartz Case: http://www.rahul.net/jeffrey/ovs/
------------------------------
Date: Sun, 08 Nov 1998 20:44:42 GMT
From: Tom Phoenix <rootbeer@teleport.com>
Subject: Re: regexp for IP address / host-domain
Message-Id: <Pine.GSO.4.02A.9811081237000.14028-100000@user2.teleport.com>
On Sun, 8 Nov 1998, Rocko wrote:
> Is there a regexp that will match an IP address in the form of 1.2.3.4
> or similarly hostname.domain.orgtype ?
Yes, there is. But you probably don't want to insist on there being four
numbers in a dotted-quad, since future IP addresses may have more and
current ones may have fewer.
Just what is it you're trying to do? If you're looking to validate an
address, you should probably use DNS. If you're looking to pick a
valid-looking name out of text, you should probably write the expression
based upon the DNS host name standards. But maybe this simple pattern is
all you're looking for. Hope this helps!
[^.\s]+(?:\.[^.\s]+)*
--
Tom Phoenix Perl Training and Hacking Esperanto
Randal Schwartz Case: http://www.rahul.net/jeffrey/ovs/
------------------------------
Date: 09 Nov 1998 09:58:34 -0500
From: Uri Guttman <uri@sysarch.com>
Subject: Re: Removing ^K
Message-Id: <x7btmgdiat.fsf@sysarch.com>
>>>>> "AD" == Andy Davidson <pheon@hevanet.com> writes:
AD> This does not work:
AD> $line = $_;
AD> $line =~ s/\cK//g; # This doesn't work for some reason
AD> but this does:
AD> ($code, $surname, $firstname, $address, $city, $state, $zip) =
AD> split(/\t/);
AD> # Remove all ^K from fields
AD> foreach $field ($code, $surname, $firstname, $address, $city,
AD> $state, $zip) {
AD> $field =~ s/\cK//g;
AD> }
looks like it should work. can you post more code and data so we can see
what is happening?
also you might look at tr/\cK//d as it faster than s/// for deleting all
occurrances of a char set.
hth,
uri
--
Uri Guttman ----------------- SYStems ARCHitecture and Software Engineering
Perl Hacker for Hire ---------------------- Perl, Internet, UNIX Consulting
uri@sysarch.com ------------------------------------ http://www.sysarch.com
The Best Search Engine on the Net ------------- http://www.northernlight.com
------------------------------
Date: Sun, 08 Nov 1998 21:04:31 GMT
From: Tom Phoenix <rootbeer@teleport.com>
Subject: Re: Resource for activescpiting in perl
Message-Id: <Pine.GSO.4.02A.9811081302440.14028-100000@user2.teleport.com>
On Sun, 8 Nov 1998, Manuel Labor wrote:
> Im looking for a resource on how to use perlscript in a html file. I
> don't want to write a script, save as *.pl and then try to run from
> the html file. I want to use <scipt tags>
It sounds as if you want your webserver to do something. Perhaps the docs,
FAQs, and newsgroups about webservers could help you.
> I can't even find how to assign variables.
See the perlop manpage or the Llama book for information on doing this in
Perl.
> I am trying to do this
>
> @file=contents of a webpage;
Use the LWP modules from CPAN. Hope this helps!
--
Tom Phoenix Perl Training and Hacking Esperanto
Randal Schwartz Case: http://www.rahul.net/jeffrey/ovs/
------------------------------
Date: Mon, 09 Nov 1998 15:23:14 GMT
From: asitmain.tperry@email.state.ut.us
Subject: Security - How to circumvent it.
Message-Id: <36470769.6080513@blinksoft.com>
I am trying to devise a script that will alow a user on my Y2K test
system to reboot and set the date on that system. I initally started
to write this in shell and found that I could set the date and reboot
the system vi a suid 4755 mode script. However when I attempt this in
perl I get many warning, errors, and aborts. I have tried a C wrapper
that executes the script where the suid bit is on the C, but I get the
following message:
Insecure $ENV{PATH} while running setuid at /ipl/ipl.pl line 14, <>
chunk 1
Although I understand that there is significant security risk with
this script, let me make myself clear that I really don't care if the
users have root password on this system, I was only hopeing not to
have to give it to them in order to keep the less curious ones from
biting their fingers off.
Could anyone give me an idea on how I can run this script with root
permissions from a nonroot person without causing all of these
security triggers to occure? (I will recomplie perl again if that
will help)
Thanks in advance,
Tim Perry
asitmain.tperry@email.state.ut.us
tperry@blinksoft.com
<please respond via email as well as via usenet>
------------------------------
Date: Sun, 08 Nov 1998 16:44:38 GMT
From: pub @ alma . ch (M.)
Subject: Re: Sendmail-code needed
Message-Id: <3645c95e.4753065@news.urbanet.ch>
>To send mail to ours@casema.net
>subject : test
>body: $boy
>
>What would the perl code be?
one example using Mail::Sendmail:
use Mail::Sendmail;
%mail = (
To => 'Some Real Name ours@casema.net',
From => 'ours@casema.net', # You Need a From header!
Subject => 'test',
Body => $boy
);
sendmail(%mail) || die "! Error: $Mail::Sendmail::Error\n";
------------------------------
Date: Mon, 09 Nov 1998 16:59:50 GMT
From: "Sylvain St.Germain" <sylvain@macadamian.com>
Subject: Setting/Getting value in an Hash of Hash...
Message-Id: <36471ED6.102F14F0@macadamian.com>
This is a multi-part message in MIME format.
--------------28EA9CA6D63C7911C111CAED
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
I am reading a file into an hash like, and I cannot access the data...
NOTE: my right parenthesis is printed as a pipe....
%api = ();
open FILE, "cat ....|";
while (<FILE>) {
chomp;
$api{$_} = {COUNT=>0, FOUND=>0};
}
This seems to work, however, I cannot figure out how
to update COUNT and FOUND... I tried stuff like (assuming toto is in the
hash):
$api{'toto'}{COUNT} =+ 1;
$api{'toto'}{'COUNT'} =+ 1;
but nothing works when I print the content using:
while(($func, $stat)=each %api) {
print "$stat{COUNT}\n";
print "$stat{'COUNT'}\n";
}
What am I doing wrong?
Regards,
Sylvain.
--------------28EA9CA6D63C7911C111CAED
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Sylvain St.Germain
Content-Disposition: attachment; filename="vcard.vcf"
begin: vcard
fn: Sylvain St.Germain
n: St.Germain;Sylvain
org: Macadamian Technologies Inc.
email;internet: sylvain@macadamian.com
title: Software Designer
note;quoted-printable:Work Voice: (613) 739-5976 x114=0D=0A=
Work Fax: (613) 739-9859
x-mozilla-cpt: ;0
x-mozilla-html: TRUE
version: 2.1
end: vcard
--------------28EA9CA6D63C7911C111CAED--
------------------------------
Date: 08 Nov 1998 00:00:00 +0000
From: j.poehlmann@link-n.cl.sub.de (Johannes Poehlmann)
Subject: STANDARD PERL for WIN 95/NT EXECUTABLE
Message-Id: <74S2oLPZUkB@link-n-j.poehlmann.link-n.cl.sub.de>
(Weekly posting to comp.lang.perl.misc and de.lang.perl)
_Where to find the *STANDARD* windows 95/NT port of perl (binary) ?_
(The "standard" has a number of advantages over Microsoft's "Activeware"
port. E.g. you can install perl modules not contained in the binary
distribution. As long as these Modules do not use C-code you do not need a C-
compiler )
Worldwide (Redirecting you to a "near" site )
ftp://ftp.perl.com/pub/CPAN/ports/win32/Standard/x86/
Look for a File like
perl5.00402-bindist04-bc.zip
there is a new Version (perl 5.005 ) released
Walnut Creek CD-ROM:
They left the directory /ports/win32/Standard/x86/ empty. (But not the
directory /ports/win32/Activeware ... )
They forgot to make up a link to the other places, where
you could find the file:
You find the Files in alternative subdirectories: /authors/
Gurusamy_Sarathy/
perl5.00402-bindist04-bc.zip
or
/modules/by-module/GSAR/
perl5.00402-bindist04-bc.zip
#------------------------------------
# find here Gurusamy Sarathy's readme file
#------------------------------------
Welcome to the binary distribution of Perl for the Win32 platform.
This distribution has been compiled using the Borland C++ compiler
(version 5.02). It is built around the latest production release of
Perl, version 5.004_02, which comes with Win32 support.
Please note that this distribution is not to be confused with
the pre-5.004 Perl port by the Activeware folks, or the binaries
they distribute (which are mostly referred to by "build" numbers).
This bundle contains almost everything you will need for using Perl
on Win32 platforms. It also contains everything needed to build,
test and install additional perl modules from CPAN that you may not
find in here, provided they use the standard MakeMaker extension
build tools. Since MakeMaker needs a `make' utility, a Win32 binary
of Dennis Vadura's `dmake' tool is supplied (see below for more on
`dmake'). For using this distribution to build extensions that need
a C compiler, you will also need either Borland C++ 5.02, or Visual
C++ (version 2.0 and later).
WHY WOULD YOU WANT THIS?
------------------------
+ You want to use perl on WindowsNT or Windows95, but you have
no C compiler (or at least not one that will build perl).
+ You seem to have the compiler stuff, but not the patience or
knowledge to deal with compiling perl and the various extensions.
And you are happy to continue using the binary distributions that
you know people are going to keep putting out once every half
moon. [May not be exactly every half moon, but you'll keep the
faith. Remember to give away that compiler you don't use :)]
+ You have one of the supported compilers that will build Perl,
but you want to jump-start your XSsively hardcore perl module
development by taking this shortcut. [But see the notes below
on `USING IT WITH YOUR C COMPILER' for some caveats about doing
this.]
+ You want a perl that is capable of doing sockets on Windows95,
and you just have Visual C++. [The Visual C++ libraries known to
date have a problem with sockets on Windows95, which might cause
you trouble. The Borland libraries, which this distribution was
built with, do not have the problem.]
INSTALLATION
------------
To install:
* Extract the archive so that the directory structure of the
files is preserved.
* `cd' to the top level directory.
* Type `install' (if in the command shell) or click on
`install.bat' (from the Explorer). If that refuses to run for
some reason, you can instead type `perl\bin\perl install.bat'
in the command shell. The setup process will ask a few
questions and will offer to generate HTML documentation from
the various files in the distribution. A full installation
requires about 20 megabytes of free space.
* Add the installed location of PERL.EXE to your `PATH'.
For instance, if you asked for things to be installed under
`e:\perl', add `e:\perl\bin' to your PATH.
* You will need to edit the contents of %NetConfig in
`lib\site\Net\Config.pm' to set the names of the servers
used by the libnet package.
PLATFORMS
---------
This binary distribution has been extensively tested only on WindowsNT.
Based on reports from others, I believe it also works on Windows95,
but I personally did not test it on that platform. Note the supplied
binaries are for the x86 architecture.
WHAT IT CONTAINS
----------------
It includes the following packages:
perl5.004_02
dmake-4.1
Alias-2.3
Bit-Vector-4.2
Curses-1.01 [*]
Data-Dumper-2.07
DateCalc-3.2
DateManip-5.10
DBD-ODBC-0.16
DBI-0.89
Devel-Peek-0.83
Devel-Symdump-2.00
DProf-19970614 [*]
GD-1.14 [*]
libnet-1.0505 [*]
libwin32-0.08
libwww-perl-5.11
MD5-1.7
MIME-Base64-2.03
MLDBM-1.23
Storable-0.5 [*]
String-Approx-2.1
Tk402.002
NOTES:
[*] These packages needed porting or other fixes to compile and
run properly. All changes are included in the form of patches
(the kind that can be applied using the GNU patch utility) in
the `patches' subdirectory. The full sources of all of
these packages (with the exception of dmake, see below for that)
can be found on the Comprehensive Perl Archive Network (CPAN).
Point your web browser at "http://www.perl.com/CPAN" to find the
CPAN site nearest you.
The package subdirectories under `distfiles' also contain other
documentation and testsuites that came with the package. These are
not installed, so you may want to save them for later reference.
Please note that the patches are for information purposes only.
You don't have to apply them (or even know what a patch is) to use
this distribution.
In case you find yourself needing to build things from source, there
is a win32 port of GNU patch-2.1 at:
http://www-personal.umich.edu/~gsar/patch2_1-win32.tar.gz
that can be used to apply the included patches.
The modules in the distribution doubtless reflect my own personal
pattern of use. In some cases, I made a conscious decision not to
include modules that don't contain C or XS source, since it should be
possible to obtain, build and install such modules from CPAN without
too much trouble (or a C compiler), using perl and `dmake'.
Nevertheless, I shall add specific modules to the distribution if
there is demand.
DEMOS
-----
After you install the distribution and add its location to your PATH,
you can run the `widget' demo to check if your installed perl is
working properly. To make sure your new PATH setting takes effect,
you may have to reboot. Afterward, just type `widget' in the command
shell, or double-click on `widget.bat' from the Explorer.
DOCUMENTATION
-------------
If you choose, the installation process converts all the Plain Old
Documentation it can find into HTML pages. There are normally stored
in the `html' subdirectory under the install location. You can start
browsing the main perl documentation at `html/lib/pod/perl.html'.
If you choose not to install HTML, you can still browse almost
all of the perl documentation from the command line using `perldoc'.
Type `perldoc perldoc' to get started.
The `distfiles' area of the distribution also contains much HTML
documentation that is not handled by the install process. You
may want to selectively copy parts of it to wherever you normally
install your web documents.
USING IT WITH YOUR C COMPILER
-----------------------------
If you don't have a supported C compiler, this section doesn't
apply to you. If you have one, and intend using it to build
other modules that require a C compiler, then read on.
This distribution was compiled with Borland C++ 5.02, using `dmake'.
If you too have that compiler (or a later version), there are
no caveats about using this distribution for further builds of
extensions. (I have heard earlier versions of Borland C++ have
a buggy linker that doesn't like the module definition files that
perl generates, so your mileage may vary if you're using
versions earlier than 5.02.)
If you don't have the Borland compiler, it is also possible to build
and use extension binaries compiled with Visual C++. The converse--
using a perl binary built under Visual C++ with extension binaries
built under Borland C++--does not work due to a bug in the Visual
C++ linker (present as of version 5.0). In other words, if you have
the Visual C++ compiler *and* you plan to use some pre-built
extensions in this distribution *and* compile some of your own using
the Visual C++ compiler, you will need the perl binaries that came
with this distribution. So don't overwrite the perl binary with
one that you may have built yourself using the Visual C++ compiler.
The setup procedure will do the necessary things to make sure the
installed version of the `lib\Config.pm' file will work with your
compiler for future extension builds.
TERMS OF USE
------------
Perl can be freely distributed under the `Artistic License' or the
`GNU General Public Licence', described in the two files `Artistic'
and `Copying' respectively. Most of the modules have statements to
the effect that they can be distributed under the same terms as Perl,
but you should download and check the individual module's sources to
be sure.
The included dmake tool is compiled from the latest public release of
dmake-4.1 available from `ftp://plg.uwaterloo.ca/pub/dmake/'. The
binary is completely unsupported. Full (commercial) support for dmake
may be obtained from its author. See `http://dmake.wticorp.com/' for
the latest. Note that public version of dmake-4.1 can only be
distributed under the GNU General Public Licence.
The remaining parts of this binary distribution itself can be
distributed under the same terms as Perl. Beware that it is provided
"as is", and comes with absolutely no warranty of any kind, either
express or implied. If you use the contents of this distribution, you
do so at your own risk, and you agree to free the author(s) of any
consequences arising from such use, either intended or otherwise.
BEING NICE TO NICE BEINGS
-------------------------
Perl is the creation of Larry Wall. Continuing refinement of Perl
is made possible by the unceasing efforts of many fine folk who have
banded together with Larry in endless perlesque banter, collectively
calling themselves "The Perl Porters". If you find perl useful
in getting your job done, you may want to drop them a note of
appreciation at <perl-thanks@perl.org>. Be sure to recount
any war stories about how Perl helped you win your battles :)
Another fine way to encourage development of perl is to become a
member of The Perl Institute, a non-profit organization which helps
"people help Perl help people" (or something like that). See
http://www.perl.org/ for details.
If you plan to put this on a CDROM or other similar media, I request
that you send me a brief message. Note that some modules explicitly
require that you obtain permission from the module author to do that
sort of thing, so you should. Altered versions of this distribution
must be clearly marked as such.
Enjoy!
Gurusamy Sarathy (Just Another Perl Porter)
gsar@umich.edu
08-AUG-1997
------------------------------
Date: Sun, 08 Nov 1998 20:33:55 GMT
From: Tom Phoenix <rootbeer@teleport.com>
Subject: Re: syslog msg format?
Message-Id: <Pine.GSO.4.02A.9811081232340.14028-100000@user2.teleport.com>
On Sun, 8 Nov 1998, Rocko wrote:
> Any ideas or pointers to syslogd type code?
Sure; any GNU archive should have some. Not that this question has
anything Perl-specific about it. If you have further questions about Unix
systems, the docs, FAQs, and newsgroups about Unix should be helpful for
you. Good luck!
--
Tom Phoenix Perl Training and Hacking Esperanto
Randal Schwartz Case: http://www.rahul.net/jeffrey/ovs/
------------------------------
Date: Sun, 08 Nov 1998 16:25:25 -0500
From: Ajit Deshpande <ajit@skycorp.net>
Subject: Weird core dumps with DBD::Oracle -> possible bug?
Message-Id: <36460C45.180105B@skycorp.net>
I am having an extremely weird problem with a DBD::Oracle scripts
dumping core when I set environment
through a sub routine.
I am using : Perl, version 5.005_02 built for i86pc-solaris, DBI-1.02,
DBD-Oracle-0.54
Platform : Solaris 2.6 on x86
Oracle : 8.0.5
#!/usr/local/bin/perl
use CGI;
use DBI;
CGI::SetMyOraEnv; # I have this subroutine in my CGI.pm
..log into Oracle..
..exec select statement
..print results
The above script prints the results correctly but dumps core after
execution. However, thru CGI, it just dumps
core without any output. But, the weird thing is, if I have a "print"
statement before the DBI stuff
in the script, it works fine thru CGI without any core dumps!
I am not aquainted with using gdb etc to go through the core dump, but
will gladly mail it to someone who wishes
to have a look. The best I could do was this :
$ strings core | less
....
/bin/sh
/usr/bin/csh
0123456789abcdef0123456789ABCDEFx
\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}
nomethod
bool
fallback
panic: sprintf overflow - memory corrupted!
values-Xa.c
/build/on495-good/usr/src/lib/libc/
.......
AUTOLOAD
Identifier too long
Number too long
@(#)yaccpar 1.8 (Berkeley) 01/20/91
=!<,>
during global destruction.
(null)
(in cleanup)
Target of goto is too deeply nested
0 but true
!"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNO
PQRSTUVWXYZ{|}~
L16
8WK16
L16P
((((( H
!"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNO
PQRSTUVWXYZ{|}~
5.00502
F6xP
__END__
TIA!
Ajit
ajit@skycorp.net
------------------------------
Date: 12 Jul 98 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Special: Digest Administrivia (Last modified: 12 Mar 98)
Message-Id: <null>
Administrivia:
Special notice: in a few days, the new group comp.lang.perl.moderated
should be formed. I would rather not support two different groups, and I
know of no other plans to create a digested moderated group. This leaves
me with two options: 1) keep on with this group 2) change to the
moderated one.
If you have opinions on this, send them to
perl-users-request@ruby.oce.orst.edu.
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 4180
**************************************