[7043] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 668 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Thu Jun 26 14:17:23 1997

Date: Thu, 26 Jun 97 11:00:31 -0700
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Thu, 26 Jun 1997     Volume: 8 Number: 668

Today's topics:
     -Teenage School Girls * young1.jpg a;dlfjs@asdl;fj.com
     BIG databases (Patrick Verdon)
     Call 'lynx' with Perl (Jun Zhuang)
     Re: Checking an entered date (Steffen Beyer)
     Re: decimal to hex conversion? <sfairey@adc.metrica.co.uk>
     Error Compiling perl 4.036 on SCO (Reinhard Buchholz)
     Re: file download issues <rootbeer@teleport.com>
     Re: get end of string (easy question) <sheiness@no.canned.meat.austin.ibm.com>
     Re: GIFgraph.pm or finance scripts <mike@soft-tek.com>
     Help building ultimate WWW Languages Guide (Markus Voelter)
     Help launching/controlling external application (David Corbin)
     Re: Help launching/controlling external application <clark@s3i.com>
     Re: help: TEST-EXP ? TRUE-EXP :FALSE-EXP <jheck@merck.com>
     Re: Killing PID's <rootbeer@teleport.com>
     lwp problem (Ivo Bieleveldt)
     Re: need APPEND method <rootbeer@teleport.com>
     Newbie needs Elegance <ashfield.matthew@miti.nb.ca>
     Re: Newbie needs Elegance <sfairey@adc.metrica.co.uk>
     Re: No child processes <sfairey@adc.metrica.co.uk>
     Perl Win 32 vs Serial Ports redleader@cedep.net
     Problems compiling using Compile-a3 <wjs@cs.duke.edu.nospam>
     Re: read serial port perl5 help? <root@192.255.255.255>
     Re: Regexps on streams <rootbeer@teleport.com>
     Re: Remove duplicate values from array (Steven Elliot Pav)
     Req: CRC-32 <kissel@kissel.spicerack.ibm.com>
     Re: Request for Bids - Web Site Mirroring Script <root@192.255.255.255>
     Re: Search the GID <rootbeer@teleport.com>
     SIGSEGV on HP-UX Oraperl (Perl 5.003) peter_farabaugh@bdsi.com
     Re: Sockets <serginho@alpha.hydra.com.br>
     Re: Sockets <justinb@cray.com>
     Re: Substitute ^M by HTML <br> code... <jheck@merck.com>
     Re: uc function for PERL4 (John L. Allen)
     Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: 26 Jun 1997 16:26:33 GMT
From: a;dlfjs@asdl;fj.com
Subject: -Teenage School Girls * young1.jpg
Message-Id: <5ou57p$5uq$898@news.internetmci.com>


Are you ready to look at pictures of Teens fucking and sucking?  


Then cum visit:





                http://www.sexy-girls.com






All models represented on Sexy-Girls are 18 years of Age or Older.





------------------------------

Date: 26 Jun 1997 17:07:34 GMT
From: patrick@Smallworld.co.uk (Patrick Verdon)
Subject: BIG databases
Message-Id: <5ou7km$129@hydrogen.smallworld.co.uk>

Hi all,

I'm needing to find a database, accessible from PERL, ideally free,
that can cope with up to 2,000,000 records, consisting of user
name, id and probably a couple of other fields. 

I don't really know where to start; I've read through some archives
at www.dejanews.com, that refer to things like GDBM, or DS_file and
I've also been recommended 'postgres 95'.

Can anyone make any other suggestions, or offer working examples?

What kind of lookup times (for a given user, say) can I expect from a 
database of this size on perhaps a SPARCstation 20 or an UltraSPARC?

What do I need to do to optimise speed of access?

If you can offer any help I would be most grateful.

Cheers.



Patrick


------------------------------

Date: 26 Jun 1997 16:05:43 GMT
From: jzhuang@ringer.cs.utsa.edu (Jun Zhuang)
Subject: Call 'lynx' with Perl
Message-Id: <5ou40n$d74@ringer.cs.utsa.edu>

Hi:
 I tried call a 'lynx' command with my Perl script in Unix:
$gb_file = qx{lynx http://www.ncbi.nlm.nih.gov/};
print $gb_file;
I was happy that I saw what I want. 
BUT, when I add some query strings, it failed to work.
$gb_file = qx{lynx http://www.ncbi.nlm.nih.gov/htbin-post/Entrez/query?db=n&uid=619931&form=6&Dopt=g};
This works fine if under a netscape browser.
But,I got an error mesage under Unix: www.ncbi.nlm.nih.gov/htbin-post/Entrez:
 No such file or directory.
Is that a problem that "lynx" won't work for query string (CGI)?
Any sugestions to solve the problem(by not use web browser)?
Thanks.



------------------------------

Date: 26 Jun 1997 12:54:56 GMT
From: sb@en.muc.de (Steffen Beyer)
Subject: Re: Checking an entered date
Message-Id: <5otor0$i00$1@en1.engelschall.com>

Dean Hollister <deanh@nospam.mail> wrote:

> Can anyone point me to the relevant code to parse the information
> supplied in a date (ie, date of birth) and check its validity, then
> check if the person is over 18?

> Would it be easier to have the form parse the information, ie, enter the
> day, month and year in seperate boxes?

> Using Perl 5.

Using the module "Date::DateCalc" for instance, checking if a given
date is a valid date is just one function call away:

  $flag = check_date($year,$mm,$dd);

Using that module, your problem could be solved as follows (tested code!):

-------------------- cut here -------------------- cut here --------------------
#!/sw/bin/perl

use Date::DateCalc qw(:all);
use Date::DateCalcLib qw(:all);

print "\n";

$ok = 0;
while (! $ok)
{
    print "Please enter the date of your birthday (month-day-year): ";
    $date = <STDIN>;
    print "\n";
    if (($yy1,$mm1,$dd1) = decode_date_us($date))
    {
        $datestr = date_to_short($yy1,$mm1,$dd1);
        print "Your birthday is: $datestr\n";
        print "\n";
        print "Is that correct? (yes/no) ";
        $response = <STDIN>;
        print "\n";
        $ok = ($response =~ /^Y/i);
    }
}

print "Your birthday is: $datestr\n\n";

($yy2,$mm2,$dd2) = parse_date(`/bin/date`); # get today's date

if (($mm1 == 2) && ($dd1 == 29) && !check_date($yy2,$mm1,$dd1)) { $dd1--; }

if ((($yy2 - $yy1) >= 18) &&
    (dates_difference($yy2,$mm1,$dd1,$yy2,$mm2,$dd2) >= 0))
{
    print "Ok - you are over 18.\n";
}
else
{
    print "Sorry - you aren't 18 yet!\n";
}

print "\n";

-------------------- cut here -------------------- cut here --------------------

Note that you can enter the date in almost any format this way as long as
the order of the three items is month - day - year!

For instance you can use numbers for the month or an abbreviation of the
month's name (like "jan", "feb" etc.) - that's up to the user!

You can find this module on any CPAN ftp server or on my web site at

http://www.engelschall.com/u/sb/download/

Hope this helps.

Yours,
-- 
    Steffen Beyer <sb@sdm.de> http://www.engelschall.com/u/sb/
     "There is enough for the need of everyone in this world,
      but not for the greed of everyone." - Mahatma Gandhi
   >> Unsolicited commercial email goes directly to /dev/null <<


------------------------------

Date: Thu, 26 Jun 1997 10:49:57 +0100
From: Simon Fairey <sfairey@adc.metrica.co.uk>
To: scottj@insane.com
Subject: Re: decimal to hex conversion?
Message-Id: <33B23B45.794B@adc.metrica.co.uk>

Scott Johnson wrote:
> 
> Does anybody know (I'm sure somebody must) how to convert decimal
> numbers to hex?  I've tried a few things with pack, but everything I
> try either comes up as the wrong number or zero.  I've seen the
> postings here on how to do this with printf, but I need to data to
> remain in variables.  Thanks in advance!

Try this:

perl -e '$var=sprintf("%lx",16);print "\n16 in hex is $var";'

Simon


------------------------------

Date: Thu, 26 Jun 1997 16:56:21 GMT
From: sa165m@uni-duisburg.de (Reinhard Buchholz)
Subject: Error Compiling perl 4.036 on SCO
Message-Id: <33b293c4.258971@news.uni-duisburg.de>

I tried to compile perl on SCO Enterprise 5.0.0d with SCO Development
Installed. I got the followin error messages from make:

|	`sh  cflags doio.o` doio.c
|	  CCCMD =  cc -c  -U M_XENIX -D_NO_PROTO -O
|"doio.c", line 294: warning: argument is incompatible with prototype: arg #2
|"doio.c", line 627: error: undefined struct/union member: _cnt
|"doio.c", line 637: warning: improper member use: _cnt
|"doio.c", line 638: warning: improper member use: _cnt
|"doio.c", line 1196: error: undefined struct/union member: _cnt
|"doio.c", line 1201: warning: improper member use: _cnt
|"doio.c", line 1203: warning: improper member use: _cnt
|"doio.c", line 1203: error: undefined struct/union member: _ptr
|"doio.c", line 1203: error: undefined struct/union member: _base
|"doio.c", line 1204: warning: improper member use: _base
|"doio.c", line 1204: warning: improper pointer/integer combination: op "="
|"doio.c", line 1451: warning: argument is incompatible with prototype: arg #2
|"doio.c", line 1482: warning: argument is incompatible with prototype: arg #2
|"doio.c", line 1673: warning: argument is incompatible with prototype: arg #2
|"doio.c", line 1677: warning: argument is incompatible with prototype: arg #2
|"doio.c", line 2090: warning: argument is incompatible with prototype: arg #2
|"doio.c", line 2090: warning: argument is incompatible with prototype: arg #3
|"doio.c", line 2090: warning: argument is incompatible with prototype: arg #4
|"doio.c", line 2898: error: identifier redeclared: shmat
|*** Error code 1 (bu21)

The typedef for FILE in stdio.h is

|#ifndef _FILE
|#define _FILE
|
|typedef struct _FILE_   /* must be binary-compatible with old versions  */
|{
|	int             __cnt;  /* number of available characters in buffer  */
|	unsigned char   *__ptr; /* next character from/to here in buffer  */
|	unsigned char   *__base;        /* the buffer (not really)  */
|	unsigned char   __flag; /* the state of the stream  */
|	unsigned char   __file; /* file descriptor  */
|	unsigned char   __buf[2];/* micro buffer as a fall-back  */
|} FILE;
|
|#endif /* ifndef _FILE */


Following the lines of doio.c, which produced the error:

|  285   #ifdef HAS_SOCKET
|  286           else if (
|  287   #ifdef S_IFMT
|  288               !(statbuf.st_mode & S_IFMT)
|  289   #else
|  290               !statbuf.st_mode
|  291   #endif
|  292           ) {
|  293               int buflen = sizeof tokenbuf;
|  294               if (getsockname(fileno(fp), tokenbuf, &buflen) >= 0
|  295                   || errno != ENOTSOCK)
|  296                   stio->type = 's'; /* some OS's return 0 on fstat()ed socket */
|  297                                   /* but some return 0 for streams too, sigh */
|  298           }
|  299   #endif
|
|  621       if (!stio)
|  622           return TRUE;
|  623
|  624       while (stio->ifp) {
|  625
|  626   #ifdef STDSTDIO                 /* (the code works without this) */
|  627           if (stio->ifp->_cnt > 0)        /* cheat a little, since */
|  628               return FALSE;               /* this is the most usual case */
|  629   #endif
|  630
|  631           ch = getc(stio->ifp);
|  632           if (ch != EOF) {
|  633               (void)ungetc(ch, stio->ifp);
|  634               return FALSE;
|  635           }
|  636   #ifdef STDSTDIO
|  637           if (stio->ifp->_cnt < -1)
|  638               stio->ifp->_cnt = -1;
|  639   #endif
|  640           if (!stab) {                    /* not necessarily a real EOF yet? */
|  641               if (!nextargv(argvstab))    /* get another fp handy */
|  642                   return TRUE;
|  643           }
|  644           else
|  645               return TRUE;                /* normal fp, definitely end of file */
|  646       }
|  647       return TRUE;
|  648   }
|  649
|
| 1191           if (stio && stio->ifp) {
| 1192   #if defined(STDSTDIO) || defined(atarist) /* this will work with atariST */
| 1193               fstat(fileno(stio->ifp),&statcache);
| 1194               if (S_ISDIR(statcache.st_mode))     /* handle NFS glitch */
| 1195                   return arg->arg_type == O_FTTEXT ? &str_no : &str_yes;
| 1196               if (stio->ifp->_cnt <= 0) {
| 1197                   i = getc(stio->ifp);
| 1198                   if (i != EOF)
| 1199                       (void)ungetc(i,stio->ifp);
| 1200               }
| 1201               if (stio->ifp->_cnt <= 0)   /* null file is anything */
| 1202                   return &str_yes;
| 1203               len = stio->ifp->_cnt + (stio->ifp->_ptr - stio->ifp->_base);
| 1204               s = stio->ifp->_base;
| 1205   #else
| 1206               fatal("-T and -B not implemented on filehandles");
| 1207   #endif
| 1208           }
|
| 1451       return bind(fileno(stio->ifp), addr, st[sp]->str_cur) >= 0;
|
| 1482       return connect(fileno(stio->ifp), addr, st[sp]->str_cur) >= 0;
|
| 1671       switch (optype) {
| 1672       case O_GETSOCKNAME:
| 1673           if (getsockname(fd, st[sp]->str_ptr, (int*)&st[sp]->str_cur) < 0)
| 1674               goto nuts2;
| 1675           break;
| 1676       case O_GETPEERNAME:
| 1677           if (getpeername(fd, st[sp]->str_ptr, (int*)&st[sp]->str_cur) < 0)
| 1678               goto nuts2;
| 1679           break;
| 1680       }
|
| 2084   #if BYTEORDER == 0x1234 || BYTEORDER == 0x12345678
| 2085       nfound = select(
| 2086           maxlen * 8,
| 2087           st[sp+1]->str_ptr,
| 2088           st[sp+2]->str_ptr,
| 2089           st[sp+3]->str_ptr,
| 2090           tbuf);
| 2091   #else
| 2092       nfound = select(
| 2093           maxlen * 8,
| 2094           fd_sets[1],
| 2095           fd_sets[2],
| 2096           fd_sets[3],
| 2097           tbuf);
| 2098       for (i = 1; i <= 3; i++) {
| 2099           if (fd_sets[i]) {
| 2100               str = st[sp+i];
| 2101               s = str->str_ptr;
| 2102               for (offset = 0; offset < growsize; offset += masksize) {
| 2103                   for (j = 0, k=ORDERBYTE; j < masksize; j++, (k >>= 4))
| 2104                       s[(k % masksize) + offset] = fd_sets[i][j+offset];
| 2105               }
| 2106               Safefree(fd_sets[i]);
| 2107           }
| 2108       }
| 2109   #endif
|
| 2890   #ifdef HAS_SHM
| 2891       register STR **st = stack->ary_array;
| 2892       register int sp = arglast[0];
| 2893       STR *mstr;
| 2894       char *mbuf, *shm;
| 2895       int id, mpos, msize;
| 2896       struct shmid_ds shmds;
| 2897   #ifndef VOIDSHMAT
| 2898       extern char *shmat();
| 2899   #endif


I changed all appearences of _cnt, _base and  _ptr to __cnt, __base
and __ptr. Is this really necessary?

What's about the incompatible types?

When I ran "make test" I got the following errors:

io/tell:      FAILED on test 0
op/glob:  Bad free() ignored at ./op/glob.t line 7, <_GEN_0> line 48
op/stat:   FAILED on test 45

Can anyone help me?
Reihard Buchhlolz, 
teacher at Mercator-Gymnasium Duisburg, Germany
R.Buchholz@uni-duisburg.de,  phone: 0049 203 725626


------------------------------

Date: Thu, 26 Jun 1997 06:58:48 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Paul Hassett <paul@onlinesupport.com>
Subject: Re: file download issues
Message-Id: <Pine.GSO.3.96.970626065735.9758E-100000@kelly.teleport.com>

On Thu, 26 Jun 1997, Paul Hassett wrote:

> I'm writing some code which needs to verify whether a file was
> downloaded successfully or not. Does anyone know a way to do this? 

I'd have the machine with the copy prepare a checksum of the file, then
have either machine compare that with the checksum of the original. Hope
this helps!

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



------------------------------

Date: 25 Jun 1997 19:59:07 GMT
From: Frank Sheiness <sheiness@no.canned.meat.austin.ibm.com>
Subject: Re: get end of string (easy question)
Message-Id: <5ortab$10ri$1@ausnews.austin.ibm.com>

Clay Irving <clay@panix.com> wrote:
> Try:
> #!/usr/local/bin/perl5.003
> $IMAGE = "http://www.women.com/guide/guide/gifs/nav.7.gif";
> @split_path = split /\//, $IMAGE;     # split on /
> $END = "$split_path[$#split_path]\n"; # get the last element of the array

i still like my way best (=

#!/usr/bin/perl

use Benchmark;

$IMAGE = 'http://www.women.com/guide/guide/gifs/nav.7.gif';

timethese('10000', {
	'Substr' => '$END = substr($IMAGE, rindex($IMAGE, "/") + 1);',
	'Regex'  => '$IMAGE =~ m</([^/]*)$>;
	             $END = $1;',
	'Split'  => '@split_path = split /\//, $IMAGE;
	             $END = "$split_path[$#split_path]\n";'
  }
)

Benchmark: timing 10000 iterations of Regex, Split, Substr...
Regex:  5 secs ( 3.01 usr  0.00 sys =  3.01 cpu)
Split:  8 secs ( 5.03 usr  0.00 sys =  5.03 cpu)
Substr:  1 secs ( 0.47 usr  0.00 sys =  0.47 cpu)

-- 
the neighbors complain about the noises above


------------------------------

Date: Thu, 26 Jun 1997 11:34:28 -0500
From: Mike Christensen <mike@soft-tek.com>
Subject: Re: GIFgraph.pm or finance scripts
Message-Id: <33B29A14.386B@soft-tek.com>

Kevin Luff wrote:
> 
> Can anybody help with these two????
> 
> I have GIFgraph loaded and running fine - but:
> 
> 1) sometimes I need to create graphs that sometimes have positive and
> negative values for the Y-axis
> 

When you find that your current charting solution is coming up short, I
would like to invite you to check out GRAFSMAN/WWW from Soft-tek
International, Inc.

You will find a live demonstration of GRAFSMAN/WWW on our website:

http://www.soft-tek.com

Please let me know if I can be of further assistance,


Mike Christensen
Soft-tek International, Inc.
1999 N. Amidon, Wichita, KS  67203
316 838 7200(v)  --  316 838 3789(f)
mailto:mike@soft-tek.com
http://www.soft-tek.com


------------------------------

Date: 26 Jun 1997 17:35:49 GMT
From: voelter@acm.org (Markus Voelter)
Subject: Help building ultimate WWW Languages Guide
Message-Id: <5ou99l$o3r$11@news.belwue.de>

Help building ultimate WWW Languages Guide

Hello Programmers,

We intend to build the Web's most complete reference site on programming 
languages. 
We do not want to install another links collection. We want to provide 
content!
Because we cannot write all the essays on languages ourselves, we hereby 
ask the web
community to help completing this effort. So YOU can write something 
about the language 
you know best.
To help us building this site please have a look at
  http://fl-sun00.fbe.fh-weingarten.de/~voelter/w3plg/index.html
where you'll find more detailed information.

[ I have also posted this mail to some other comp.lang.* groups, to find 
people for 
different languages. ]


Thank you very much for your help!

regards, Markus

-- 
----------------------------------------------------------------------
Markus Voelter               http://next1.rz.fh-weingarten.de/~voelter
voelter@acm.org                      phone/fax: (Germany) 0751 / 46928
----------------------------------------------------------------------



------------------------------

Date: Thu, 26 Jun 1997 17:05:53 GMT
From: david@csol.com (David Corbin)
Subject: Help launching/controlling external application
Message-Id: <5otsj8$b83@news2.zippo.com>

I am trying to launch an application (tcpdump), and be able to kill it
after a certain time.  I'm using Fork/Exec, and that launching part
works fine.  But, if I attempt redirect the output to /dev/null, then
it launches a shell first, which launches the tcpdump.  This wouldn't
be a problem, but when I attempt to KILL the process I created, the
shell dies, but tcpdump doesn't.  (well, it seems that it will if I
use SIGHUP, but that seems to do REAL bad things to my system).

I need either 1) a better way to kill these two process, or 2) someway
to redirect the tcpdump stdout/stderr without launching a shell.

Suggestions by e-mail welcome....

Thanks.
David Corbin



------------------------------

Date: 26 Jun 1997 13:15:52 -0400
From: Clark Dorman <clark@s3i.com>
Subject: Re: Help launching/controlling external application
Message-Id: <den9p2sl3.fsf@s3i.com>


david@csol.com (David Corbin) writes:
> I am trying to launch an application (tcpdump), and be able to kill it
> after a certain time.  I'm using Fork/Exec, and that launching part
> works fine.  But, if I attempt redirect the output to /dev/null, then
> it launches a shell first, which launches the tcpdump.  This wouldn't
> be a problem, but when I attempt to KILL the process I created, the
> shell dies, but tcpdump doesn't.  (well, it seems that it will if I
> use SIGHUP, but that seems to do REAL bad things to my system).
> 
> I need either 1) a better way to kill these two process, or 2) someway
> to redirect the tcpdump stdout/stderr without launching a shell.

What you need to do is to kill the process and all of it's children,
not just the process itself.  The secret is to kill the entire process
group, using - before the id of the group.  Normally, the parent would
die, but you make the parent ignore the signal.  Try the following or
some variation thereof (time_waster.sh is just a shell script that
calls a C program that takes a long time to run):

----------------------------------------------------------------------
#!/home/dorman/bin/perl -w

# In this script, have the parent call a kill to the entire process group.
# However, set it up so that the signal is handled / ignored in the parent,
# but not the child.

use strict;
use Config;

my $pid = fork;
my $our_pgrp;

defined ($pid) or die "couldn't fork: ($!)" ;

if ($pid) {
   $our_pgrp = getpgrp;
   
   print " Child pid is ($pid).  Now in parent, ($our_pgrp) is pgrp.  ";
   print " Parent \$\$ is ($$) = ($our_pgrp)\n";
   
   sleep 20;
   print " Stopping child from parent  ($pid)\n";
   {
      local $SIG{TSTP} = 'IGNORE';
      kill TSTP => -$$;
   }
   
   sleep 20;
   print " Restarting child from parent  ($pid)\n";
   {
      local $SIG{CONT} = 'IGNORE';
      kill CONT => -$$;
   }
   
   sleep 20;
   print " Killing child from parent  ($pid)\n";
   {
      local $SIG{HUP} = 'IGNORE';
      kill HUP => -$$;
   }
   print " tried to kill, should be dead now\n";
   
} else {
   # In child.
   $our_pgrp = getpgrp;
   sleep 5;
   print " Exec'ing in child ($our_pgrp) is pgrp.  ";
   print " Child \$\$ is ($$) != ($our_pgrp) pgrp\n";
   # exec("time_waster.sh");
   # or 
   # system( "time_waster.sh");
   # or 
   {
      my ($time_waster_out);
      $time_waster_out = `time_waster.sh`;
   }
}
__END__


-- 
Clark Dorman				"Evolution is cleverer than you are."
http://cns-web.bu.edu/pub/dorman/D.html                -Francis Crick


------------------------------

Date: Thu, 26 Jun 1997 10:53:56 -0400
From: "James J. Heck" <jheck@merck.com>
Subject: Re: help: TEST-EXP ? TRUE-EXP :FALSE-EXP
Message-Id: <33B28284.41C6@merck.com>

Tom,

> Because of operator precedence your second expression is being parsed as:
>         ((defined($opt_t)) ? $type=$opt_t    : $type) = "type_a";
> which accounts for the unexpected behavior.  Just use an if statement.
	
	I believe that the following code would work:

$type = ((defined($opt_t)) ? $opt_t : "type_a";

	Or atleast I have done this in C with teriary stmts.  

	James

Please send any responses to jheck@acm.org and not the email in header.	
--------------------
James J. Heck
jheck@acm.org
http://www.bucknell.edu/~jheck


       The contents of this message express only the sender's opinion.
       This message does not necessarily reflect the policy or views of
       my employer, Merck & Co., Inc.  All responsibility for the statements
       made in this Usenet posting resides solely and completely with the
       sender.


------------------------------

Date: Thu, 26 Jun 1997 09:02:16 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: "Media Relations, Inc." <media@mediarelations.com>
Subject: Re: Killing PID's
Message-Id: <Pine.GSO.3.96.970626085908.9758R-100000@kelly.teleport.com>

On Thu, 26 Jun 1997, Media Relations, Inc. wrote:

> Newsgroups: comp.lang.perl

If your news administrator still carries comp.lang.perl, please encourage
him or her to check out the frequent posting about bogus newsgroup names
in news.announce.newgroups. You'll be doing yourself and many others a
favor to use comp.lang.perl.misc (and other valid Perl newsgroups)
instead.

    news:news.announce.newgroups

> I have a store script which apparently leaves some hung processes on the
> system. If someone can give me an easy way to check for a process and
> kill it if it is "X" minutes old, it would be great!

Wouldn't it be better to fix your script so that it didn't hang? :-)

Your webserver (this _is_ a web situation, isn't it?) may be able to take
care of this with a configuration option; check its docs or a server
newsgroup. Hope this helps! 

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



------------------------------

Date: Thu, 26 Jun 1997 14:03:23 GMT
From: obp@onlinebp.com (Ivo Bieleveldt)
Subject: lwp problem
Message-Id: <33b276a5.21812432@news.tref.nl>

Hi all,

Does anyone have any clue why this program doesn't work ? It always
prints "Bad luck this time", no matter that url I use.  The weird
thing is that when I change 'head' to 'get', it works, but I don't
want the html, I want the response headers  :-(

When I change 'head' to 'HEAD' the program just stops without any
error. Can anyone help me, I'm sure it must be something really easy.

thanks
Ivo Bieleveldt


#!/usr/local/bin/perl


$url ="http://www.onlinebp.com/";

  # Create a user agent object
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$ua->agent("AgentName/0.1 " . $ua->agent);
 
# Create a request
$req = HTTP::Request->new(head => $url);
$req->header(Accept => "*");
$req->content_type('text/html');
$req->content('match=www&errors=0');
 
# Pass request to the user agent and get a response back
$res = $ua->request($req);
 
# Check the outcome of the response
if ($res->is_success) {
print $res->content;
   } else {
print "Bad luck this time\n";
}
---------------------------------
Online Business Productions
** abonneer nu op Nettips !! **
http://www.onlinebp.com/


------------------------------

Date: Thu, 26 Jun 1997 07:22:10 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Andrew Galdes <galdes.andrew@pi.sa.gov.au>
Subject: Re: need APPEND method
Message-Id: <Pine.GSO.3.96.970626072059.9758I-100000@kelly.teleport.com>

On Tue, 24 Jun 1997, Andrew Galdes wrote:

Newsgroups: comp.lang.perl

If your news administrator still carries comp.lang.perl, please encourage
him or her to check out the frequent posting about bogus newsgroup names
in news.announce.newgroups. You'll be doing yourself and many others a
favor to use comp.lang.perl.misc (and other valid Perl newsgroups)
instead.

    news:news.announce.newgroups

> I have a page where i want to (on event) triger a perl script which
> will append whatever was submmited to the bottom of the HTML file.

You can open a file for append by using the ">>" open syntax, documented
under "open" in perlfunc. Hope this helps!

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



------------------------------

Date: 26 Jun 1997 15:02:09 GMT
From: "mashfiel" <ashfield.matthew@miti.nb.ca>
Subject: Newbie needs Elegance
Message-Id: <01bc8178$44fb26a0$3e080a0a@mashfiel.miti.nb.ca>

Hey all, 
As the subject says, I am rather new to the Perl environment. I've found
some great info out on the web, but thought I'd try hear for a bit of
advice. My program I am writing accepts a log file and creates an html file
based upon the log. My dilemma is this, the log files are named by ip
address.. ie 123.456.789.log . And I want the html files to look something
like REPORT123.456.789.html. I've managed to change the .log to .html with
the following non-elegant code:

$logfile = pop(@ARGV);
$report = $logfile;
$report =~ s/.log/.html/;

I am sure there is probably a much quicker way to do this (as there always
seems to be in Perl) and am just curious how it would be done (always
trying to learn). As far as adding the REPORT to the beginning of the
filename, I haven't really looked into that yet. Anyway, thanks to anyone
who takes the time to read and respond to this. I look forward to any
suggestions and thus expanding my Perl knowledge bu just that bit!!!
Response by email preferable.
Thank you for your time,
Matt
ashfield.matthew@miti.nb.ca


------------------------------

Date: Thu, 26 Jun 1997 17:15:50 +0100
From: Simon Fairey <sfairey@adc.metrica.co.uk>
To: mashfiel <ashfield.matthew@miti.nb.ca>
Subject: Re: Newbie needs Elegance
Message-Id: <33B295B6.6201@adc.metrica.co.uk>

mashfiel wrote:
> 
> Hey all,
> As the subject says, I am rather new to the Perl environment. I've found
> some great info out on the web, but thought I'd try hear for a bit of
> advice. My program I am writing accepts a log file and creates an html file
> based upon the log. My dilemma is this, the log files are named by ip
> address.. ie 123.456.789.log . And I want the html files to look something
> like REPORT123.456.789.html. I've managed to change the .log to .html with
> the following non-elegant code:

Not inelegant, slightly incorrect but definitely inelegant.

> 
> $logfile = pop(@ARGV);
> $report = $logfile;
> $report =~ s/.log/.html/;

Watch out with using any of the special characters in regexps. '.' means
match any character except a newline so your s/// expression above would
also have changed 123.456.789log to 123.456.78.html notice the 9 has
been replaced. If you want to actually match a '.' the escape it with
'\' i.e. s/\.log/.html/ .

Also I assume you are aware that pop() will give you the last command
line argument entered and not the first, it won't matter at the moment
if you only have on arg but if you add more at a later date things may
get ugly :)

> 
> I am sure there is probably a much quicker way to do this (as there always
> seems to be in Perl) and am just curious how it would be done (always
> trying to learn). As far as adding the REPORT to the beginning of the
> filename, I haven't really looked into that yet. Anyway, thanks to anyone
> who takes the time to read and respond to this. I look forward to any
> suggestions and thus expanding my Perl knowledge bu just that bit!!!
> Response by email preferable.
> Thank you for your time,
> Matt
> ashfield.matthew@miti.nb.ca

The following will do what you want this is assuming you don't need to
keep hold of the original logfile name, otherwise just save it as
before.

# Use $report = shift; if you want the first and not the last arg.
# pop() and shift() will default to @ARGV.
$report = pop;
$report = $report =~ s/^(.*)\.log/REPORT$1.html/;

Working out the difference is something for you to look at, you should
find all you need to decipher it in the man pages ( assuming you don't
already understand it )

Simon


------------------------------

Date: Thu, 26 Jun 1997 15:34:41 +0100
From: Simon Fairey <sfairey@adc.metrica.co.uk>
To: Godfrey Cheng <gcheng@ceogroup.com>
Subject: Re: No child processes
Message-Id: <33B27E01.237C@adc.metrica.co.uk>

Godfrey Cheng wrote:
> 
> Hi there,
> 
> I am using UNIX to run a batch program every night and after performing
> several thousands of transactions, the program stops and returns the
> following message saying that "No child processes".
> 
> Does it mean that the system is out of resources somehow?  Can someone
> help me cause this bugs me for a while.  Thank you.
> 
> Godfrey

You will more than likely be running into a maximum number of processes
limit, not knowing what system you are on I can't suggest where to look
exactly but I know on many systems there is a maxuproc which is set up.
I recommend you re-post this on comp.unix.<whatever os> and I would
imagine you will get a response fairly quickly. One point worth
considering is whether or not your script actually should be creating
that many processes that it runs into the limit problem in the first
place?

Simon


------------------------------

Date: Thu, 26 Jun 1997 15:17:06 GMT
From: redleader@cedep.net
Subject: Perl Win 32 vs Serial Ports
Message-Id: <5ou154$8jc$1@wagner.videotron.net>



Is it possible to send and receive data over the serial port with
Perl Win 32 ???





------------------------------

Date: 26 Jun 1997 10:33:05 -0400
From: Joe Shamblin <wjs@cs.duke.edu.nospam>
Subject: Problems compiling using Compile-a3
Message-Id: <ysfk9jhwi1q.fsf@cs.duke.edu>


I am trying to compile a program that I wrote to make it easier for
others without, god forbid, a recent version of perl. I have run into
a couple of snags. I am using perl5.004, and the Compile-a3 module. I
can get the program to compile using the following commands.

perl -MO=C,-opatchreport.c patchreport
perl cc_harness -O2 -DALLOW_PERL_OPTIONS -o PatchReport patchreport.c

The only problem is that when you try to pass the program any
arguments it either uses them as options to perl, like the -v flag or
if the option is unique to the program it just segfaults. I am using
several modules: English, MD5, Net::FTP, FileHandle, Getopt::Std. Is
there something I am missing, or it even possible to compile programs
like this? The full program is available from
ftp://x86.cs.duke.edu/pub/PatchReport/PatchReport if there is a need
for the specific code.

Joe
--
Joe Shamblin					wjs@cs.duke.edu
Systems	Administrator			Department of Computer Science
660-6582					Duke University


------------------------------

Date: Thu, 26 Jun 1997 14:03:26 GMT
From: Jim Buttafuoco <root@192.255.255.255>
Subject: Re: read serial port perl5 help?
Message-Id: <5otsre$l7f@gateway.buttafuoco.net>

Bob,
	Here is a simple perl script that uses the POSIX module to access the serial port.  It is a simple termial emulation program. Modify to suit your needs

Jim


#!/usr/bin/perl -w

use strict;
use POSIX;
use FileHandle;

sub PerlMain
{
    my($bytes,$buf);
    my($timeleft);
    my($tserial,$tterm,$sterm);
    my($cflags,$oflag,$iflag,$lflag);
    my($fdserial,$fdterm);
    my($rin,$win,$ein) = (0,0,0);
    my($rout,$wout,$eout) = (0,0,0);
    my($nfound);
    my($buf) = '';
    my($x);

    
    $fdserial = POSIX::open("/dev/cua1",O_RDWR|O_NONBLOCK);
    if($fdserial < 0)
    {
        die "Error opening /dev/cua1\n";
    }

    $fdterm = POSIX::open("/dev/tty",O_RDWR);
    if($fdterm < 0)
    {
        die "Error opening /dev/cua1\n";
    }


    $tserial = new POSIX::Termios;
    $tserial->setiflag(IGNBRK | INPCK);
    $tserial->setoflag(0);
    $tserial->setcflag(CS8 | CREAD | CLOCAL | CSTOPB);
    $tserial->setlflag(0);
    $tserial->setispeed(B38400);
    $tserial->setospeed(B38400);
    $tserial->setattr($fdserial,TCSANOW);

    $tterm = new POSIX::Termios;
    $sterm = new POSIX::Termios;
    $tterm->getattr($fdterm);
    $sterm->getattr($fdterm);
    $tterm->setiflag(0);
    $tterm->setlflag(0);
    $tterm->setcc(VTIME,0);
    $tterm->setcc(VMIN,0);

    $tterm->setattr($fdterm,TCSANOW);


    while(1)
    {
        my($bytes,$buf);
        my($timeleft);
        $rin = '';
        vec($rin,$fdterm,1) = 1;
        vec($rin,$fdserial,1) = 1;

        ($nfound,$timeleft) = select($rout = $rin,undef,undef, 10);

        if(vec($rout,$fdterm,1))
        {
            $bytes = POSIX::read($fdterm,$buf,256);
            last if $buf =~ /^~/;
            POSIX::write($fdserial,$buf,$bytes);
        }


        if(vec($rout,$fdserial,1))
        {
            $bytes = POSIX::read($fdserial,$buf,256);

            if($buf)
            {
              POSIX::write($fdterm,$buf,$bytes);
            }
        }

    }

    $sterm->setattr($fdterm,TCSANOW);
    exit(0);
}

PerlMain();





bob king <bking@dimensional.com> wrote:
: Bob Mariotti wrote:
: > 
: > We are attempting to read from a native serial port that has no getty
: > running on it.  However, the read seems to hang.  When we use sysread
: > there is no hang but no data received, so we suspect the sysread is
: > simply bypassing a wait situation.
: > When we do 'cat /dev/ttyx' we receive the data but we must cancel the
: > shell to see it.  Therefore one would assume the port is looking for
: > some end of line sequence.
: > I have noticed that others too are experiencing similar problems and a
: > search of the FAQ's do not seem to turn up anything.
: > 
: > Can someone please advise as to what might be causing this hang?  We
: > are stumped on this one.
: > 
: > TIA

: Wish i could help. I am attempting something similar. The doc tells
: me to send '>H' to the device and expect a 448 string of ascii chars
: plus header '&CR&' and cr/lf in return. So i expect 453/454 chars
: depending on whether perl substitutes the unix record terminator.
: Instead
: i get 447/448, the leading chars seem to be the ones dropped.

: From an exchange here earlier this week i am using '$|=1;' to ensure
: a flush, and then the open,printf,close,open,read sequence i saw in
: the article.

: Using 'cat '>H'>/dev/cua0;cat /dev/cua0 gives me similar results so
: i think the problem is more system (Linux) than perl. Still i'm
: hoping perl provides the way out.

: By way of confession i am using 'stty speed 2400 cs8 -parenb
: -crtscts </dev/cua0' which at least causes perl to return something.
: Without it the script just hangs.

: If this ever works i'll post the solution. Im the meantime any
: suggestions
: are appreciated

: Thanks,


------------------------------

Date: Thu, 26 Jun 1997 07:17:53 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Ilya Zakharevich <ilya@math.ohio-state.edu>
Subject: Re: Regexps on streams
Message-Id: <Pine.GSO.3.96.970626070536.9758H-100000@kelly.teleport.com>

On 26 Jun 1997, Ilya Zakharevich wrote:

> Of course my RE is not better than your in purpose of streaming.  To
> make it stream-oriented you do something like
> 
> 	/(\b\w+\b).{0,160}\b\1\b/s
> 
> (which is not equvalent to what you wrote, but at least illustrates
> that a lot of work may be done on stream-oriented data).

Agreed! :-)  If using a RE on a stream does get into the core, it would
really help if there were some way for Perl to be able to warn or abort
when a regular expression is thrashing, since it will be an easy feature
to misunderstand and misuse.

> The only reason it is not in the jumbo patch is that before your post
> I could not squeeze an extra argument (refilling function and data)
> into the RE engine API.  Your post somehow triggered an idea how to do
> it... ;-)

Oh, no. :-)  Well, if a user-function is going to re-supply the stream
data upon request, will there be some way for it to report failure? The
reason I ask is because I'm thinking of what will happen if you abort a
match halfway through. Where does control continue? Or is that event like
a die() which could be trapped within eval{}? 

Also, if you've got a user function which can source the stream, it's only
a small leap to having another user function to be a sink, thereby
enabling s/// to work directly upon (yow) entire files of unlimited size. 

I can hear you coding already... :-)

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



------------------------------

Date: 26 Jun 1997 14:41:45 GMT
From: pav@LAS.alfred.edu (Steven Elliot Pav)
Subject: Re: Remove duplicate values from array
Message-Id: <slrn5r4e97.761.pav@LAS.alfred.edu>

>george.pieri@mci.com (George Pieri) writes:
>
>> I would like to remove all the duplicate values from a one dimensional
>> array... Is there an easy way to do this....?

i have thought for a while that it might be nice to write an object
which accepts an equivalence test function (defaulting to 'eq'), when
you tie it to an array.  then as an array only holds _unique_ values
(as determined by the equivalence test);  so when you try to push a
value onto this array that is already present in it, it is detected,
and not actually added to the array.  in certain cases you don't want
duplicate values from the start.

i have written most of the code, but i am still waiting for tied
arrays to be fully developed in Perl;  does anybody have an estimate
for the full tied array update?

	thanks,



-- 
                                                                        
steven_y_e_pav                             a_kind_of_computer_using_guy
pav@las.alfred.edu                           http://las.alfred.edu/~pav
505.667.9080                                      p990/lanl/la,nm,87545
505.661.0622                         3000_trinity_dr/apt_64/la,nm,87544


------------------------------

Date: Wed, 25 Jun 1997 15:52:46 -0400
From: "Robert S. Kissel" <kissel@kissel.spicerack.ibm.com>
Subject: Req: CRC-32
Message-Id: <33B1770E.41C6@kissel.spicerack.ibm.com>

Before I go writing and testing one myself, does anyone have a module or
sub to calculate a CRC-32?  I didn't see one in the CPAN modules list.


------------------------------

Date: Thu, 26 Jun 1997 14:05:11 GMT
From: Jim Buttafuoco <root@192.255.255.255>
Subject: Re: Request for Bids - Web Site Mirroring Script
Message-Id: <5otsun$l7f@gateway.buttafuoco.net>

Also look at mirror located on CPAN  

Jim

luvisi@andru.sonoma.edu wrote:
: overby@crl.com writes:
: > The Internet Guide to Hostelling (www.hostels.com), is currently
: > seeking assistance to develop a script that will be used to
: > mirror web sites at other locations to our server.

: have you checked out Wget from the fsf?
: ftp://prep.ai.mit.edu/pub/gnu/wget*

: not that I have anything against scripting (I make my living doing
: it), but you might be better off just using a tool which already does
: what you need...

: andru


------------------------------

Date: Thu, 26 Jun 1997 07:04:51 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Connie Goller <goller@wasatch.com>
Subject: Re: Search the GID
Message-Id: <Pine.GSO.3.96.970626070238.9758G-100000@kelly.teleport.com>

On Thu, 26 Jun 1997, Connie Goller wrote:

> What is a simple script that would parse through a password file of my
> choice, either from the local machine or it's ypserver, and report back
> to me who is in a specified range of groups. 

I don't have one, but you can easily write one. It will probably be best
if you use Perl's built-in functions to access the passwd database. 

> What I'm trying to do is go through and find out on our entire net who
> is in group 0, 1, 5, and 10. 

You probably can use grep() to do that, or you can write a loop. Good
luck! 

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



------------------------------

Date: Thu, 26 Jun 1997 12:54:59 -0600
From: peter_farabaugh@bdsi.com
Subject: SIGSEGV on HP-UX Oraperl (Perl 5.003)
Message-Id: <867265338.5215@dejanews.com>

We are trying to run oraperl on a HP-UX 10 machine.

We get random but regular SEGVs and the following messages

Unable to create sub name "" during global destruction
Bad Free() ignored during global destruction


The messages occur on every ora_logoff whether or not it core dumps. If
we leave out the ora_logoff it dies when the lda goes out of scope.


                                 Thanks for any help,
                                        Peter Farabaugh

-------------------==== Posted via Deja News ====-----------------------
      http://www.dejanews.com/     Search, Read, Post to Usenet


------------------------------

Date: 26 Jun 1997 13:11:39 GMT
From: "Sergio Stateri Jr" <serginho@alpha.hydra.com.br>
Subject: Re: Sockets
Message-Id: <01bc8232$daf387a0$6875e7c8@Term104>

> > Does anyone know where I can find a good socket tutorial?
> > I tried perlipc but it was a bit advanced
> 
> You mean as in the basics of berkeley sockets?  Perl just uses the local
> library for accept(), bind() and so on.  Although a parameter or two may
> be different than the C version (Perl doesn't need the sizeof() operator
> that C does), the actions performed by each Perl is the same as the C
> function with the same name.  Your system documentation (hardcopy or man
> pages) might have some good examples.  Go to comp.unix.programmer or
> news.answers and look around for the socket FAQ.  Perhaps get a book on
> socket programming like "Unix Network Programming", or anything by
> Douglas Comer.
>...

I'd like to know if there's a socket tutorial, but anything like this :

service		port
========       ====
http		80
telnet		23
DNS		??????

thanks


-- 
--------------------------------------------
Sergio Stateri Jr
Sco Paulo (SP) - Brazil
e-mail: serginho@usa.net
--------------------------------------------


------------------------------

Date: Thu, 26 Jun 1997 10:44:06 -0500
From: Justin Banks <justinb@cray.com>
Subject: Re: Sockets
Message-Id: <33B28E46.15FB@cray.com>

Sergio Stateri Jr wrote:
> I'd like to know if there's a socket tutorial, but anything like this :
> 
> service         port
> ========       ====
> http            80
> telnet          23
> DNS             ??????
> 
> thanks
> 

If I understand you correctly, this isn't a perl question, right? I
think your looking for the file /etc/services it's got all that good
info in it.

-- 
Justin Banks
Silicon Graphics Cray Research
Eagan, Minnesota


------------------------------

Date: Thu, 26 Jun 1997 13:17:29 -0400
From: "James J. Heck" <jheck@merck.com>
Subject: Re: Substitute ^M by HTML <br> code...
Message-Id: <33B2A429.2781@merck.com>

Sylvain,

	The "^" is a reserved character in PERL.  Thus you just need to escape
the character.  

	$Note =~ s/\^M/<br>\n/g;

This should work just fine now.  :-)

	James
--------------------
James J. Heck
jheck@acm.org
http://www.bucknell.edu/~jheck


       The contents of this message express only the sender's opinion.
       This message does not necessarily reflect the policy or views of
       my employer, Merck & Co., Inc.  All responsibility for the statements
       made in this Usenet posting resides solely and completely with the
       sender.


------------------------------

Date: 26 Jun 1997 12:35:32 -0400
From: allen@gateway.grumman.com (John L. Allen)
Subject: Re: uc function for PERL4
Message-Id: <5ou5ok$cq1@gateway.grumman.com>

In article <EC5rs3.1DG@nonexistent.com>, Abigail <abigail@fnx.com> wrote:
>Bruno Pagis (pagib@aur.alcatel.com) wrote on 1389 September 1993 in
><URL: news:33AA835A.7169@aur.alcatel.com>:
>++ I've written a uc (capitalize) function for PERL4.
>++ There is more than one way to do it. Anybody wloud have a better idea ? 

>sub uc {
>    $_ [0] =~ tr/a-z\xe0-\xf6\xf8-\xfe/A-Z\xc0-\xd6\xd8-\xde/;
>    $_ [0];
>}

Wouldn't perl4's \U do ?

sub uc { "\U$_[0]" }
-- 

-----
John.


------------------------------

Date: 8 Mar 97 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 8 Mar 97)
Message-Id: <null>


Administrivia:

The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc.  For subscription or unsubscription requests, send
the single line:

	subscribe perl-users
or:
	unsubscribe perl-users

to almanac@ruby.oce.orst.edu.  

To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.

The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.

The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.

For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V8 Issue 668
*************************************

home help back first fref pref prev next nref lref last post