[10311] in Perl-Users-Digest
Perl-Users Digest, Issue: 3904 Volume: 8
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue Oct 6 13:07:11 1998
Date: Tue, 6 Oct 98 10:00:22 -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 Tue, 6 Oct 1998 Volume: 8 Number: 3904
Today's topics:
Re: "restoring" hard references <zenin@bawdycaste.org>
Re: Are there any "perl.newbie" group or forum? (Patrick Timmins)
Re: Are there any "perl.newbie" group or forum? <jdporter@min.net>
Re: Are there any "perl.newbie" group or forum? (J|rgen P|nter)
Re: Are there any "perl.newbie" group or forum? (Craig Berry)
CGITRAP CGI debugger <EBO@dannet.dk>
Re: comp.lang.perl.win32?? (Don Groves)
Re: Compile <scott.ranzal@mci.com>
Convet'g Excel to text <Venkat.Chalamalasetty@mci.com>
Discussing XSUB Development <Arved_37@chebucto.ns.ca>
foreach(%ENV) yields only one, but they're all there (w <Russell_Schulz@locutus.ofB.ORG>
Re: help with finding a regular expression <aqumsieh@tigre.matrox.com>
Re: Help with Here Document <matt@whiterabbit.co.uk>
How to match exactly x occurrences of a character <careys@paciolan.com>
Re: How to match exactly x occurrences of a character (Snowhare)
Re: How to match exactly x occurrences of a character (Mike Stok)
Re: How to pass a hash array to a sub program (Brand Hilton)
Re: ip addresses <jimbo@soundimages.co.uk>
Output CGI under Windows <cbarnett@idirect.com>
Perl scripts not writing - no access token (James Michael Stewart)
Re: POLL: Perl features springing into your face cpierce1@ford.com
Re: Problems Using a Compare Subroutine with Sort droby@copyright.com
Re: Problems Using a Compare Subroutine with Sort <aqumsieh@tigre.matrox.com>
Re: RFC: "Build'n'Play" installation tool <eashton@bbnplanet.com>
Re: send geroge reese (was Re: Call for Participation: <dsmiley@mitre.org>
Re: sort question? (Brand Hilton)
Re: sort question? (Brand Hilton)
Re: Split question - retain the pattern? (Bart Lateur)
using SYLK for random access cells in a new file (was R <Russell_Schulz@locutus.ofB.ORG>
Special: Digest Administrivia (Last modified: 12 Mar 98 (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 6 Oct 1998 16:02:58 GMT
From: Zenin <zenin@bawdycaste.org>
Subject: Re: "restoring" hard references
Message-Id: <907689653.919734@thrush.omix.com>
pcbel@my-dejanews.com wrote:
: Is it possible to do something like this?
: $hashref=\%somehash;
: # do something with %somehash
: # Restore the hash
%tempHash = %somehash;
## do something with %somehash
## Restore the hash
%somehash = %temphash;
Refs won't work as your saved copy ref would be modified
with the original.
--
-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: Tue, 06 Oct 1998 15:49:49 GMT
From: ptimmins@netserv.unmc.edu (Patrick Timmins)
Subject: Re: Are there any "perl.newbie" group or forum?
Message-Id: <6vde6t$tqd$1@nnrp1.dejanews.com>
In article <3619EEA2.87134CE2@forumnett.no>,
Hauk Langlo <hauk@forumnett.no> wrote:
> I'm sure there are a lot of people reluctant to post questions here
> afraid of having "RTFM" yelled in their face each time. I'm not an
> expert myselfe and I would really like to know if there are any
> discussion forums etc where it is actually legal to ask questions that
> might be of a basic nature to some. If you know about something like
> that, please let me know and me and probably a lot of other will go away
> and leave you guys alone.
RTFM! perlfaq2 (Obtaining and Learning about Perl):
What are the Perl newsgroups on USENET? Where do I post questions?
:) <- note
Patrick Timmins
$monger{Omaha}[0]
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
------------------------------
Date: Tue, 06 Oct 1998 11:42:39 -0400
From: John Porter <jdporter@min.net>
Subject: Re: Are there any "perl.newbie" group or forum?
Message-Id: <361A3A6F.BCB3FEEF@min.net>
Hauk Langlo wrote:
>
> I'm sure there are a lot of people reluctant to post questions here
> afraid of having "RTFM" yelled in their face each time. I'm not an
> expert myselfe and I would really like to know if there are any
> discussion forums etc where it is actually legal to ask questions that
> might be of a basic nature to some. If you know about something like
> that, please let me know and me and probably a lot of other will go away
> and leave you guys alone.
You will not be happy, then, to learn that this is actually a FAQ
itself. It has been beaten to death, over and over again.
It's a bad idea. If you want to know why, I suggest you do a
simple search of comp.lang.perl.misc at Deja News.
If the effect of yelling RTFM is to make people reluctant to post
Frequently Asked Questions, then that is a Good Thing.
Perhaps they'll be more likely to try to find the answer somewhere
else, such as in the copious documentation that comes with every
installation of Perl.
Maybe you should read this newsgroup for a week, and get
an idea for what kinds of things we like to talk about.
--
John "Many Jars" Porter
baby mother hospital scissors creature judgment butcher engineer
------------------------------
Date: 6 Oct 1998 11:45:00 GMT
From: Juergen.Puenter@materna.de (J|rgen P|nter)
Subject: Re: Are there any "perl.newbie" group or forum?
Message-Id: <6vcvrs$3ks$1@penthesilea.Materna.DE>
In article <3619EEA2.87134CE2@forumnett.no>, hauk@forumnett.no says...
>
>I'm sure there are a lot of people reluctant to post questions here
>afraid of having "RTFM" yelled in their face each time. I'm not an
>expert myselfe and I would really like to know if there are any
>discussion forums etc where it is actually legal to ask questions that
>might be of a basic nature to some. If you know about something like
>that, please let me know and me and probably a lot of other will go away
>and leave you guys alone.
<sigh>
AFAIK, it was never a problem to ask 'basic questions'
in this group.
However, what you might mean is 'questions that have been
asked and answered 1000s of times already' - in short FAQs.
I believe this difference has been made very clear to you in
the past (judging from what I could get from DejaNews). Sam
Holden and Casper Clause told you similar things a short time
ago when you asked about shuffling an array.
Now, if you still insist on using clpm as your personal
helpdesk, asking FAQs etc., you should expect to be treated
to a lot of RTFM, use perldoc, read the FAQ...
HTH
Juergen Puenter
------------------------------
Date: 6 Oct 1998 16:24:28 GMT
From: cberry@cinenet.net (Craig Berry)
Subject: Re: Are there any "perl.newbie" group or forum?
Message-Id: <6vdg7s$88t$1@marina.cinenet.net>
Hauk Langlo (hauk@forumnett.no) wrote:
: I'm sure there are a lot of people reluctant to post questions here
: afraid of having "RTFM" yelled in their face each time.
They need have no fear if they've R'd TFM, of course. Even those who read
it but do not understand what they read, or read it but miss the relevant
section, or read the wrong manual are treated kindly. It's those who have
clearly not made any effort *at all* to answer their questions using
Perl's comprehensive, well-written doc who get themselves flamed -- and
rightfully so.
: I'm not an
: expert myselfe and I would really like to know if there are any
: discussion forums etc where it is actually legal to ask questions that
: might be of a basic nature to some.
There is, and you posted to it. Read the doc, read the FAQs, and if you
still find yourself puzzled, ask clpm! I've never *ever* seen a question
that began along the lines of "I read about foo in the perlbar manpage,
but when I tried baz with it I was surprised to see quux..." get flamed.
Never.
: If you know about something like
: that, please let me know and me and probably a lot of other will go away
: and leave you guys alone.
We don't want any Perl users going away. We need all the intelligent,
thoughtful participants we can get.
---------------------------------------------------------------------
| Craig Berry - cberry@cinenet.net
--*-- Home Page: http://www.cinenet.net/users/cberry/home.html
| "Ripple in still water, when there is no pebble tossed,
nor wind to blow..."
------------------------------
Date: Tue, 06 Oct 1998 18:02:40 +0100
From: EBO <EBO@dannet.dk>
Subject: CGITRAP CGI debugger
Message-Id: <361A4D2F.908A0888@dannet.dk>
(This belongs in the CGI newsgroup, but the newsgroup's
automoderator automangled it.)
I haven't seen any other debuggers that let me do just what I want,
which is to browse my CGI pages until I find one that goes wrong
and then immediately debug that exact page (with URL and POST data
intact) under perl -d or gdb or somesuch by typing something simple
like "foo_dbg.pl".
The Perl 5 script cgitrap is a server-side wrapper for CGI scripts. It
is an extension of cgitap, so enabling it for scripts or entire
directories is fairly painless and requires no script modification
or recompilation. Unless cgitrap detects an error, the only difference
the browser user will notice is that the pages don't begin loading
until your script exits.
Cgitrap's most important facilities are:
1. Every time it runs, it quietly writes a little script that you
can invoke from the command line to reproduce the specific CGI call's
environment and STDIN within a real debugger (perl -d by default).
2. It displays superficial debugging information (such as running times,
environment, STDIN, and STDERR) if your script appears to have
malfunctioned. You should be fairly well protected from "Server
Error" pages.
If you need to make any modifications to accommodate your favorite HTTP
server or operating system, and you think that those modifications would
be of general interest, please send them to me. If you can't figure out
what modifications you need to make, then you are out of luck.
Cgitap's description, which you should read first, can be found at
HREF="http://www.scendtek.com/cgitap". Cgitrap's extensions to cgitap
are described in the following comments.
Eric Boesch (with thanks to Charles D. Johnson)
#!/usr/local/bin/perl -w
#/scripts 775
#########################################################################
# CGITRAP (1998 Eric Boesch, ebo@notes.dannet.dk), from
#
# CGITAP Copyright 1996 Charles D. Johnson, ScendTek Internet Corp.
# Permission granted to use and modify this application so long as the
# copyright above is maintained, modifications are documented, and
# credit is given for any use of the application.
#
# Many thanks to Steven Brenner for his ReadParse procedure!
# ReadParse was my first introduction to the CGI interface and
# parsing FORM POST Data.
#
# CGITAP - CGI Script Analysis and Debugging Utility
#
#########################################################################
#
# CGITRAP additions: CGI header parsing; timing info; target script may
# come first; can work invisibly unless apparent errors occur; works
with
# my Netscape server; command-line debugging within replicated CGI
# environment (see debug_call); stdout separated from stderr. Tested on
# Perl 5.004 only. Comments, extensions, and bug fixes welcome.
#
# Invocation same as cgitap's (see http://scendtek.com/cgitap).
#
# Configuration section:
use strict;
require 5;
my ($user_first, $quiet_if_ok, $log_fn, $debug_call, $execute,
$time_info, $wrapper_name);
# Set $quiet_if_ok if you do not want to see _any_ cgitap
# output unless an error is detected while running the script.
$quiet_if_ok = 1;
# Set $log_fn if you want to record all of the URLs processed.
# POST form data will be converted to GET format in the URL.
# $log_fn = '../udv/log/html.log';
# Set $debug_call if you want to be able to repeat the call within
# a debugging environment. Here I'm assuming that the CGI program is
# written in Perl.
#
# If your script's name is foo, then http://whatever/cgi-bin/cgitrap/foo
# will create file foo_dbg.pl in the cgi-bin directory. Executing
foo_dbg.pl
# from the command line will initialize the CGI environment and then
# exec() "$debug_call foo".
$debug_call = '/usr/local/bin/perl -d ';
# If you want to debug the page offline, and you DON'T want to run the
page
# online because of unwanted side effects, then set $execute to false.
$execute = 1;
# If you have Time::HiRes, uncomment the following line:
# use Time::HiRes qw(time);
# If a page has sneaky errors in it, it may make it impossible to read
the
# CGITRAP output that follows it. In that case, temporarily set
# $user_first to 0.
$user_first = 1;
$time_info = 0; # Print timing information?
$wrapper_name = "cgitrap"; # Name of this script
# This program plays removes itself from the SCRIPT_NAME environment
variable.
# Consequently, programs that generate URLs from SCRIPT_NAME may
generate
# links that lack "cgitrap" in the path. Under certain circumstances,
it
# may help if you alter those programs so that they check for the
existence of
# REAL_SCRIPT_NAME. (If you use the symbolic-link invocation method,
this is
# unnecessary.)
#
# End of configuration section.
#########################################################################
my $hide_me = 1; # Remove CGITRAP from CGI env. variables?
my @time = ();
if ($time_info) {
push(@time, [time, '']); # Start time.
}
# Prepare to output cgitap results
my $content_text = "Content-type:text/html\n";
my $head = $content_text;
my $body = "\n";
my $this;
$body .= "<I>CGITRAP</I> - CGI Script Analysis and Debugging Utility";
$0 =~ m:([^/]+)$:; # separate path and this script's name
$this = $1; # this script name
my ($prog_exe, $prog);
if ($this eq $wrapper_name) {
# translate some of the environment because wrapper is in the path
my $path = $ENV{ PATH_INFO };
unless ($path) {
print "$head$body";
print "<H3>CGITAP must have a target CGI script specified:</H3>\n";
print "<H4>Example:
http://yourserver.com/cgi-bin/cgitap/script</H4>\n";
exit(0);
}
$path =~ m:/([^/]+)(.*):;
$prog = $1;
$prog_exe = $prog;
if ($hide_me) {
$ENV{ REAL_SCRIPT_NAME } = "$ENV{ SCRIPT_NAME }/$prog";
$ENV{ PATH_INFO } = $2; # remove cgi-script program name from path
$ENV{ SCRIPT_NAME } =~ s:[^/]+$:$prog:; # adjust the script name
variable
if (defined($ENV{ SCRIPT_FILENAME })) {
# adjust the script filename variable
$ENV{ SCRIPT_FILENAME } =~ s/[^\/]+$/$prog/;
}
$ENV{ PATH_TRANSLATED } =~ s/\/$prog//; # remove script name from
path
}
}
else { # cgitap is not in the path, we are using the symbolic link
method of execution
$prog = "$this";
$prog_exe = "${this}.tap";
}
$body .= <<EOF;
<HR>
<H3>General Diagnostics</H3>
<pre>
CGI Script = $prog (via $prog_exe)
EOF
my $prog_path;
if ($ENV{ SERVER_SOFTWARE } =~ /netscape/i) {
$prog_path = "./$prog_exe"; # This is all I could get to work. -- EBO
} elsif ($ENV{ SERVER_SOFTWARE } =~ /cern/i) {
$prog_path = $ENV{ SCRIPT_NAME }; # cern uses SCRIPT_NAME
# $prog_path =~ s/[^\/]+$/$prog_exe/;
} else {
$prog_path = $ENV{ SCRIPT_FILENAME };
# $prog_path =~ s/[^\/]+$/$prog_exe/;
}
if (-e $prog_path) {
unless (-x _) {
$body .= "%% WARNING %% - Designated script: $prog_exe does not "
. "have execute permissions\n";
}
if (-u _ || -g _ || -k _) {
$body .= "%% WARNING %% - Designated script: $prog_exe has setuid, "
. "setgid and/or sticky bit set\n";
}
} else {
$body .= "%% WARNING %% - Target script: $prog_exe ($prog_path) does
not exist\n";
}
$body .= "\n\n</pre>\n";
# Dump the environment variables
$body .= "<HR>
<H3>CGI Environment</H3>
<pre>
";
my ($var, $val);
while (($var, $val) = each %ENV) {
$body .= "$var = $val\n";
}
$body .= "\n\n</pre>\n";
my ($form_data, $form_data_hash_r) = (ReadParse())[0,2];
my %form_data = %$form_data_hash_r;
my $have_post_data =
defined($ENV{ REQUEST_METHOD }) &&
uc($ENV{ REQUEST_METHOD }) eq 'POST';
$ENV{ POST_DATA } = $form_data if $have_post_data;
if (defined($log_fn)) {
open LOG, ">>$log_fn"
or die $!;
print LOG ("http://" . $ENV{ SERVER_NAME } . $ENV{ SCRIPT_NAME } .
$ENV{ PATH_INFO } . ($form_data ? "?$form_data" : "") . "\n");
close LOG;
}
CREATE_DEBUG:
{
if ($debug_call) { # Create the debugging wrapper program.
my $prog_no_ext = $prog;
$prog_no_ext =~ s/\.pl$//;
my $debug_name = "${prog_no_ext}_dbg.pl";
open(DEBUG, ">$debug_name")
or do {
$body .= "<hr>WARNING: Could not open debug script $debug_name.\n";
last CREATE_DEBUG;
};
print DEBUG "#!/usr/local/bin/perl\n";
my $var;
foreach $var (keys %ENV) {
print DEBUG <<EOF;
\$ENV{ $var } = "\Q$ENV{ $var }\E";
EOF
}
print DEBUG <<EOF;
exec("@{[$have_post_data && "echo \\\$POST_DATA | "]}$debug_call
$prog_path");
EOF
close DEBUG;
chmod(0770, $debug_name);
}
}
if (!$execute) {
print <<EOF;
$content_text
<h2>Dummy Page</h2>
<P>Execution disabled.
<P>\$execute set to false in $0.
EOF
exit(0);
}
$body .= <<EOF;
<HR><PRE>
<H3>$ENV{'REQUEST_METHOD'} Form Data</H3>
EOF
foreach $var (keys %form_data) {
$body .= "$var = $form_data{ $var }\n";
}
$body .= "\n\n</pre>\n";
unless (-e $prog_path) {
print <<EOF;
$head$body
<H3>Exiting because target script is not present!</H3>
EOF
exit;
}
push(@time, [time, "Setup"]) if $time_info;
my $syscall =
($have_post_data ? 'echo $POST_DATA | ' : '') . "$prog_path";
close STDERR;
open STDERR, ">stderr.tmp";
my @get = `$syscall`
or do {
print "$head$body@_\nCould not start $prog to execute!\n";
exit(0);
};
close STDERR;
open STDERR_IN, "<stderr.tmp";
my @stderr = <STDERR_IN>;
close STDERR_IN;
delete($ENV{ POST_DATA });
push(@time, [time, "Running"]) if $time_info;
my ($err_stat, $err_msg) = ($?, $!);
if ($err_stat || @stderr) {
my $stderr_msg = @stderr ?
("STDERR:<BR>\n" . join("<BR>\n", @stderr)) : "";
$body .= <<EOF;
<HR>
Exit value: @{[$err_stat >> 8]}<BR>
System return code: @{[$err_stat & 0xff]}<BR>
Error message: $err_msg<BR>
$stderr_msg
EOF
}
my $have_cookie = 0;
my $header_ok = 0;
$_ = $get[0];
# If script has a valid CGI header, use it.
# Otherwise, we print one ourselves.
# I don't think this really handles LOCATION and URI correctly.
if (@get && (/^content-type:/i || /^location:/i || /^uri:/i)) {
my $is_html = m!^content-type:.*text/html$!i;
if (!$is_html && $user_first) {
print @get;
exit;
}
print $content_text;
# Check header syntax and print cookies.
my $is_line0 = 1;
my $complete = 0;
foreach (@get) {
$is_line0 = 0, next if $is_line0;
$header_ok = 1, last if $_ eq "\n";
$have_cookie = 1, print, next if /^set-cookie:/i;
last; # Header is bad; give up.
}
}
else { print $content_text; }
# End of CGI header section.
print "\n";
if ($quiet_if_ok && !$have_cookie && !$err_stat && $header_ok) {
# Suppress debugging output
output_array(@get);
print_time();
exit(0);
}
$body .= <<EOF;
<HR>
<H3>CGI Script Output for $prog (via $prog_exe)</H3>
<pre>
EOF
my $line;
foreach $line (@get) {
my $nline = $line;
$nline =~ s/\>/\>/g;
$nline =~ s/\</\</g;
$body .= "$nline";
}
$body .= "\n\n</pre>\n";
if (!$user_first) {
$body .= <<EOF;
<HR><H3>CGITAP Complete, Resulting HTML document
follows...</H3><HR><BR><BR><BR>
EOF
}
print $body if !$user_first; # Print CGITAP's content
output_array(@get);
if ($user_first) {
print "<HR><H3>HTML document complete, CGITAP output
follows...</H3><HR><BR><BR><BR>$body"; # Print CGITAP's content
}
push(@time, [time, "Cleanup"]) if $time_info;
print_time();
sub print_time {
return unless $time_info;
my $old_time = ${shift @time}[0];
foreach (@time) {
my ($new_time, $name) = @$_;
printf "$name: %.2f seconds\n", $new_time - $old_time;
$old_time = $new_time;
}
}
####################################################################
# Copyright 1994 Steven E. Brenner
# Unpublished work.
# Permission granted to use and modify this library so long as the
# copyright above is maintained, modifications are documented, and
# credit is given for any use of the library.
#
# Thanks are due to many people for reporting bugs and suggestions
# especially Meng Weng Wong, Maki Watanabe, Bo Frese Rasmussen,
# Andrew Dalke, Mark-Jason Dominus and Dave Dittrich.
#
# see http://www.seas.upenn.edu/~mengwong/forms/ or
# http://www.bio.cam.ac.uk/web/ for more information
#
# ReadParse was modified by ScendTek Internet Corp.; 7/3/95
#
# ReadParse
# Reads in GET or POST data, converts it to unescaped text, and puts
# one key=value in each member of the list "@in"
# Also creates key/value pairs in %in, using '\0' to separate multiple
# selections
#
# Removed format flexibility to obtain adherence to STRICT standards --
emb.
#
# Returns three references: a scalar string, an array, and a hash.
sub ReadParse {
my $in;
my @in = ();
my %in = ();
my ($i, $loc, $key, $val);
# Read in text
if ($ENV{'REQUEST_METHOD'} eq "GET") {
$in = $ENV{'QUERY_STRING'};
} elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
}
$in = '' if !defined($in);
@in = split(/&/,$in);
my $var;
foreach $var (@in) {
# Convert plus's to spaces
$var =~ s/\+/ /g;
# Convert %XX from hex numbers to alphanumeric (moved: ScendTek;
7/3/95)
$var =~ s/%(..)/pack("c",hex($1))/ge;
# Split into key and value.
($key, $val) = split(/=/,$var,2); # splits on the first =.
# Convert %XX from hex numbers to alphanumeric
#$key =~ s/%(..)/pack("c",hex($1))/ge;
#$val =~ s/%(..)/pack("c",hex($1))/ge;
# Associate key and value
$in{$key} .= " :: " if (defined($in{$key})); # :: is the multiple
separator (ScendTek; 7/3/95)
$in{$key} .= $val;
}
# return 1; # just for fun
return ($in, \@in, \%in);
}
# Script's content.
# A fallible attempt is made to remove </html> and </body>,
# so we can see CGITRAP's output too.
sub output_array {
my $in_header = 1;
foreach (@_) {
if ($in_header) {
$in_header = 0 if $_ eq "\n";
next;
}
last if m:</body>:o || m:</html>:o;
print;
}
}
1; #return true
------------------------------
Date: Tue, 6 Oct 1998 09:55:52 -0700
From: see@my.sig (Don Groves)
Subject: Re: comp.lang.perl.win32??
Message-Id: <MPG.1083eb736af3b3aa989731@news.europa.com>
In article <6vdch8$qtc$1@nnrp1.dejanews.com>, thom_co@my-dejanews.com
says...
> Has there been any discussion of creating an additional newsgroup for
> discusssion of win32 related perl issues?
>
> There are several perl issues that would be of interest only to those doing
> win32 perl programming and not to the rest of the perl community.
<delurk>
There are several mailing lists available.
See http://www.ActiveState.com/support/mailing_lists.htm
</delurk>
--
Don Groves (groves_acm_org)
Replace underscores to get my email address
------------------------------
Date: Tue, 6 Oct 1998 12:13:03 -0400
From: "Scott Ranzal" <scott.ranzal@mci.com>
Subject: Re: Compile
Message-Id: <NgrS1.208$0Z4.334407@news.cwix.com>
Look into pl2exe. It is available in the resource kit and at the companies
web site.
------------------------------
Date: Tue, 06 Oct 1998 10:42:05 -0500
From: Venkat Chalamalasetty <Venkat.Chalamalasetty@mci.com>
Subject: Convet'g Excel to text
Message-Id: <361A3A4D.FA93D7DE@mci.com>
I am try'g to convert excel to text file us'g following code
use Win32::OLE;
$application =$application = Win32::OLE->new ('Excel.Application') or
warn
"impossible to open";
$workbook = $application->Workbooks->open("$fileName");
$worksheet = $workbook->Worksheets(1);
$worksheet->SaveAs( 'c:\inetpub\wwwroot\ole.txt','xlText');
it doesn't work
Please anyone tell me whats wrong with this
------------------------------
Date: Tue, 6 Oct 1998 13:01:54 -0300
From: Arved Sandstrom <Arved_37@chebucto.ns.ca>
Subject: Discussing XSUB Development
Message-Id: <Pine.GSO.3.95.iB1.0.981006125039.25873F-100000@halifax.chebucto.ns.ca>
Just curious. Judging by two facts:
(a) a statistically-dubious sample of one, a post of mine which received
underwhelming response (well, none...), and;
(b) frequent disclaimers in all docs and modules having anything to do
with XSUBs, stating that "you are in uncharted terrain", and so forth;
is it safe to assume that questions in c.l.p.m. concerning XS code
intricacies probably won't get deluged with replies?
I'm easy either way - I've got all the perldocs, and Devel::Peek, and
Gisle Aas' Perlguts Illustrated, and so forth, and quite apart from having
answered my own question (alluded to above) the day after I posted it,
I'll no doubt solve all other problems, too. But the whole point of asking
informed questions in a NG like this is that there are always people 6
months or 2 years ahead, who can short-circuit a lot of work.
I'm basically wondering if there is a forum for XS-related questions and
discussion?
------------------------------
Date: Tue, 6 Oct 1998 10:33:33 -0400
From: Russell Schulz <Russell_Schulz@locutus.ofB.ORG>
Subject: foreach(%ENV) yields only one, but they're all there (was Re: Messages I never read)
Message-Id: <19981006.103333.0Q0.rnr.w164w_-_@locutus.ofB.ORG>
"Craig Bandon" <cbandon_nospam@tiac.net> writes:
> I guess I fall in the Bug thing.
only if you post `Subject: BUG IN PERL!!1!' and...
> I have done a dejanews search and found nothing on problems with
> foreach type problems. I have played around with my code on several
> machines/hosts.
don't do all that stuff.
> Well for anyone that would be so kind as to take a moment to
> look at my code I am having problems getting the CGI
> environment variables out of the %ENV. I do a foreach on the
> keys of %ENV and only get back one environment variable. But
> then when I go to a specific variable I get the information.
> When I go back and do a foreach I get that specific variable
> listed.
I've given this a more relevant Subject: header; people can follow the
references back to your post if they want to see all your details.
[please quote at the top, and TRIM your quotes]
--
Russell_Schulz@locutus.ofB.ORG Shad 86c
------------------------------
Date: 06 Oct 1998 11:05:38 -0400
From: Ala Qumsieh <aqumsieh@tigre.matrox.com>
Subject: Re: help with finding a regular expression
Message-Id: <x3yzpb9ennh.fsf@tigre.matrox.com>
dblack@pilot.njin.net (David Alan Black) writes:
> > "Hello<delim>Here's my problem</delim>everyone."
>
> >The regexp would replace all "e"s by "*"s, but only if the "e"s lie within
> ><delim></delim>:
>
> > Hello<delim>h*r*'s my probl*m</delim>everyone.
>
> This version is similar in principle to Garry's but easier to
> maintain, as it abstracts the delimiter into a variable which
> you can redefine if it changes (assuming the basic tag syntax
> remains the same).
>
>
> #!/usr/local/bin/perl -w
>
> use strict;
>
> my $s = "Hello<delim>Here's my problem</delim>everyone.\n";
> my $d = "delim";
>
> $s=~s!(?:<$d>)(.*?)(?:</$d>)!(my$x=$1)=~tr/e/*/;$x!ge;
>
> print $s;
>
Did you actually run this?
A couple of enhancements:
First of all, you don't need the (?:) constructs since they are not
doing anything at all!! They prevent creating backreferences .. and
since they enclose a simple expression, you don't need them
altogether. Unless you like excessive typing .. which means that you
are not a lazy person (unlike 99% of us) ..
(I generally do 's/Perl/laziness/g;' while trying to explain to
friends and colleagues the advantages of Perl -- they're instantly
hooked!)
Second, you little code gets rid of the delimiters <delim></delim>
which I think should stay there (according to the original poster --
see above). Thus, change the above regexp to:
$s=~s!<$d>(.*?)(?:</$d>)!(my$x=$1)=~tr/e/*/;"<$d>$x</$d>"!ge;
Hope this helps,
--
Ala Qumsieh | No .. not Just Another
ASIC Design Engineer | Perl Hacker!!!!!
Matrox Graphics Inc. |
Montreal, Quebec | (Not yet!)
------------------------------
Date: Tue, 06 Oct 1998 17:29:41 +0100
From: Matt Pryor <matt@whiterabbit.co.uk>
To: Andrew Perrella <ap85@cornell.edu>
Subject: Re: Help with Here Document
Message-Id: <361A4575.65BC47D9@whiterabbit.co.uk>
What's wrong with:
$words = "this
is
a
test don't you
know.
";
?
Matt
--
Andrew Perrella wrote:
>
> Hello,
>
> Is it possible to use the "Here Document" method to print to a
> variable?
>
> I have tried
>
> print TEXT<<end_of_text;
> Hello this is a atest
> end_of_text
>
> $words = <TEXT>;
>
> print $words;
>
> but I can't get this to work. I am not even sure it is possible.
>
> Thanks in advance.
>
> Andrew Perrella
> ap85@cornell.edu
--
Matt's daily comic strip
Porridge and Fartcakes
http://www.whiterabbit.co.uk/cartoons
------------------------------
Date: Tue, 6 Oct 1998 09:30:13 -0700
From: "Carey Sublette" <careys@paciolan.com>
Subject: How to match exactly x occurrences of a character
Message-Id: <6vdgis$ahh$1@nnrp2.crl.com>
This seems like a simple thing to do, but I haven't found how to do it yet:
I want to match exactly x occurrences (say, 2) of a character (say, "a") in
a row, delimited by anything that is not "a". a{2} doesn't do it, since it
also matches substrings of "aaa". I could of course indicate that I want
"aa" to be embedded in a non-a context ([^a]aa[^a]), but this includes the
context in the match also. Attempts to use a{2}*? to get a non-greedy match
fail with a "nested *? in regexp" message.
What should I be doing?
Carey
------------------------------
Date: 6 Oct 1998 10:36:39 -0600
From: snowhare@xmission.xmission.com (Snowhare)
Subject: Re: How to match exactly x occurrences of a character
Message-Id: <6vdgun$g83$1@xmission.xmission.com>
Nothing above this line is part of the signed message.
In article <6vdgis$ahh$1@nnrp2.crl.com>,
Carey Sublette <careys@paciolan.com> wrote:
>This seems like a simple thing to do, but I haven't found how to do it yet:
>
>I want to match exactly x occurrences (say, 2) of a character (say, "a") in
>a row, delimited by anything that is not "a". a{2} doesn't do it, since it
>also matches substrings of "aaa". I could of course indicate that I want
>"aa" to be embedded in a non-a context ([^a]aa[^a]), but this includes the
>context in the match also. Attempts to use a{2}*? to get a non-greedy match
>fail with a "nested *? in regexp" message.
>
>What should I be doing?
You almost had it. You just need to move the parense: [^a](aa)[^a]
Benjamin Franz
Version: 2.6.2
iQCVAwUBNhpHD+jpikN3V52xAQE99gP/Q6fu68RwS/jPHB0Bq00tolg3ev+EczJX
2L4N8YZQIn9CuACTQqyXq9dwIOkF+EbcjpwIQs1aMH6g8pkk12mFVZh3eHJ0MK5J
1BAvbXlh/JkkohQada5LJhXjjzcMCnXIzTfMm/WHqTlGVEEOIXySFcpqfS6fsBNt
RbPo/CY6yfU=
=6zo/
-----END PGP SIGNATURE-----
------------------------------
Date: 6 Oct 1998 16:45:18 GMT
From: mike@mike.stok.co.uk (Mike Stok)
Subject: Re: How to match exactly x occurrences of a character
Message-Id: <6vdheu$1mt@news-central.tiac.net>
In article <6vdgis$ahh$1@nnrp2.crl.com>,
Carey Sublette <careys@paciolan.com> wrote:
>This seems like a simple thing to do, but I haven't found how to do it yet:
>
>I want to match exactly x occurrences (say, 2) of a character (say, "a") in
>a row, delimited by anything that is not "a". a{2} doesn't do it, since it
>also matches substrings of "aaa". I could of course indicate that I want
>"aa" to be embedded in a non-a context ([^a]aa[^a]), but this includes the
>context in the match also. Attempts to use a{2}*? to get a non-greedy match
>fail with a "nested *? in regexp" message.
Would something like
if ($row =~ /(a+)/ && length ($1) == 2) {
...
}
do what you want?
One thing you myst beware of with negated character classes is that they
need something to match them, the string aa doesn't match against
/[^a]aa[^a]/ so if you were to want to use that you might end up with
something like (?:^|[^a]) at the beginning of the string.
Hope this helps,
Mike
--
mike@stok.co.uk | The "`Stok' disclaimers" apply.
http://www.stok.co.uk/~mike/ | PGP fingerprint FE 56 4D 7D 42 1A 4A 9C
http://www.tiac.net/users/stok/ | 65 F3 3F 1D 27 22 B7 41
stok@colltech.com | Collective Technologies (work)
------------------------------
Date: 6 Oct 1998 16:08:48 GMT
From: bhilton@tsg.adc.com (Brand Hilton)
Subject: Re: How to pass a hash array to a sub program
Message-Id: <6vdfag$7p15@mercury.adc.com>
In article <MPG.1082fa7b84de4469897e4@nntp.hpl.hp.com>,
Larry Rosler <lr@hpl.hp.com> wrote:
>[Posted to comp.lang.perl.misc and a copy mailed.]
>
>In article <6vbjrs$7p24@mercury.adc.com> on 5 Oct 1998 23:14:04 GMT,
>Brand Hilton <bhilton@tsg.adc.com> says...
>> In article <36193FFC.BF5C898D@home.com>,
>> Douglas Galbraith <douglas@home.com> wrote:
>...
>> >while (my ($key,$value) = each %hash_array) {print "$key=$value\n";}
>> >print_hash(%hash_array);
>> >
>> >sub print_hash
>> >{
>> > print "Here is the hash array passed into the subprogram:\n";
>>
>> %_ = @_; # kludge to make line below work.
>>
>> > while (my ($key,$value) = each %_) {print "$key=$value\n";}
>> >}
>
>The following fix is better. It avoids any copying of the hash, which is
>copied *twice* as you have chosen to fix the problem!
That's why I labeled it a kludge. Your way, of course, is the more
proper way. But, since Douglas is currently at the stage in his Perl
learning where he's confusing @_ with %_, I thought it a little
premature to educate him on references.
--
_____
|/// | Brand Hilton bhilton@adc.com
| ADC| ADC Telecommunications, ATM Transport Division
|_____| Richardson, Texas
------------------------------
Date: 06 Oct 1998 16:46:30 +0100
From: Jim Brewer <jimbo@soundimages.co.uk>
Subject: Re: ip addresses
Message-Id: <uk92d1ynd.fsf@jimbosntserver.soundimages.co.uk>
gary@webstar.net (Gary Cutrer) writes:
>
> Gosh, do you think we could be a *little* more snooty?
>
No need. But he did answer his own question. If he was really
desperate, he would have done what he suggested and then ask around
about a function or module that would do the job. You can't be that
desperate if you've got the time to post and then wait for the answer.
--
Jim Brewer
e-mailed courtesy copies are unappreciated, please refrain.
------------------------------
Date: Tue, 6 Oct 1998 12:24:51 -0400
From: "Carey Barnett" <cbarnett@idirect.com>
Subject: Output CGI under Windows
Message-Id: <361a440a.0@diana.idirect.com>
You have got to try Perl Builder:
www.solutionsoft.com
This is an IDE for Perl under Windows95, who's major feature, as far as I'm
concerned, is that it simulates a CGI environment for you.
It also has a CGI Wizard which will generate a script to process a form.
All you have to do is give it the .HTML file, and it creates the script
after asking a few questions (This is getting too easy.).
There's a couple of oddments, and minor bugs, but get it, run out the 30-day
trial, and let us know.
I'm in the middle of a major project, and it's easily cut development time
in half... maybe more.
Carey
------------------------------
Date: Tue, 06 Oct 1998 16:17:44 GMT
From: mcintyre@io.com (James Michael Stewart)
Subject: Perl scripts not writing - no access token
Message-Id: <361a417d.126914082@news.io.com>
On a new system, dual cpus, NT 4.0, SP3 + hotfixes, IIS 4.0 with
Option
pack update.
Roots are duplicated from functioning server.
Perl scripts execute, accept data, display new screens, but cannot
create new files or write to existing files.
I think I've made all of the standard mappings, permissions, and
related settings.
The W3SVC log displays a 502 error for the perl script. The Event
Viewer lists an error with Event ID 16 and text "The script started
from the URL '/cgi-bin/savextr.pl' with parameters 'fileid=ecdum' has
not responded within the configured timeout period. The HTTP server is
terminating the script. "
I used the NTHANDLE utility and determined that when a Perl script is
called, it is not assigned a security context. The error from NTHANDLE
states "<unable to open token>".
Is there a way to force a token or re-define the token used by Perl
scripts? I thought scripts took on the security context of the IUSR
account....
Any help or suggestions appreciated!
Thanks.
-Michael
michael@lanw.com
------------------------------
Date: Tue, 06 Oct 1998 14:13:57 GMT
From: cpierce1@ford.com
Subject: Re: POLL: Perl features springing into your face
Message-Id: <6vd8j5$lh4$1@nnrp1.dejanews.com>
In article <6vatqf$608@netline.jpl.nasa.gov>,
psl@euclid.jpl.nasa.gov (Peter Scott) wrote:
> How about this: since programs that use barewords tend to have a fairly
> small set of them, what about an optional preclararion pragma a la use vars:
>
> use barewords qw(-text -code name job salary title);
>
> presumably in combination with some pragma which would outlaw all other
> barewords...
Please let me be the FIRST to abuse this feature:
use barewords a..zzzz;
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
------------------------------
Date: Tue, 06 Oct 1998 15:30:41 GMT
From: droby@copyright.com
Subject: Re: Problems Using a Compare Subroutine with Sort
Message-Id: <6vdd31$rud$1@nnrp1.dejanews.com>
In article <36194EDE.5350B2B9@america.net>,
"Garry T. Williams" <garry@america.net> wrote:
>
> I don't believe that interpreting 0xffffffff as a minus one is a bug.
> That *is* minus one (assuming a 32-bit word size). The real problem is
> using a numeric compare to sort IP addresses. They are strings and a
> string compare is the only way to order them.
>
Inconsistent behavior is the alleged bug. Which behavior is correct I'm
willing to leave to others.
0xffffffff is either -1 or 2^32 - 1 depending on interpretation as signed or
unsigned.
A string compare is fine by me. I don't see that much difference between a 4
byte octet string and an unsigned 32-bit int. The routine for converting
display form to that 4 byte octet string should preferably take into account
all valid display forms, but that's really only important if your routine
might be used by someone who likes using those forms.
--
Don Roby
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
------------------------------
Date: 06 Oct 1998 11:27:47 -0400
From: Ala Qumsieh <aqumsieh@tigre.matrox.com>
Subject: Re: Problems Using a Compare Subroutine with Sort
Message-Id: <x3yyaqtemmk.fsf@tigre.matrox.com>
Michal Rutka <erhmiru@erh.ericsson.se> writes:
> > I have a hard time believing that your
> > machine, which is alsa a sparc, behaves so differently.
>
> It is up to you.
Me too .. I share John the difficulty in believing so!
>
> > How did you "discover" that 255.255.255.255 gets converted to -1?
>
> Here is the code:
>
> #!/usr/local/bin/perl
> sub dotted_to_int {
> return undef if $_[0] =~ /[^0-9.]/;
> my @a = split /\./, $_[0];
> my $n = pop @a;
> return undef unless $n < (256 ** ( 4 - @a ));
> for ( 0..$#a ) {
> return undef unless $a[$_] < 256;
> $n += ( $a[$_] << (8*(3-$_)) );
> }
> $n;
> }
>
> $a = dotted_to_int('255.255.255.255');
> print "$a\n";
> print $a > 0 ? "is positive" : "is negative" ,"\n";
>
> And here is the result:
>
> -1
> is negative
>
let me try that out on my Ultra-1 sparc .. result:
4294967295
is positive
> Here is my debuger:
>
> DB<1> X a
> $a = '-1'
>
> Michal
hmm .. what version of Perl are you using?
--
Ala Qumsieh | No .. not Just Another
ASIC Design Engineer | Perl Hacker!!!!!
Matrox Graphics Inc. |
Montreal, Quebec | (Not yet!)
------------------------------
Date: Tue, 06 Oct 1998 16:06:12 GMT
From: Elaine -HappyFunBall- Ashton <eashton@bbnplanet.com>
Subject: Re: RFC: "Build'n'Play" installation tool
Message-Id: <361A3D7C.EBD5A47A@bbnplanet.com>
Jim Brewer wrote:
> Okay, okay. You win. But I still think you are perverted. Maybe not a
> pervert, the jury is still out. But certainly perverted.
Nay, I just love playing with words and I'm a wicked funny scrabble
player. :) Anything can be perverted in the right perspective...I'm
pretty dull really. But I do think the name could be better than BnP.
> Love always.
*Blush* *smoochies*
e.
Que fiz tantos planos de me entregar
Como fiz enganos de me encontrar
Como fiz estradas de me perder
Fiz de tudo e nada de te esquecer. - Jobim -
------------------------------
Date: Tue, 06 Oct 1998 12:43:51 -0400
From: David Smiley <dsmiley@mitre.org>
Subject: Re: send geroge reese (was Re: Call for Participation: Python Conference)
Message-Id: <361A48C7.85CB6D8C@mitre.org>
Zenin wrote:
[snip]
> : It took only 5 years of OO Perl to come with it.
> : Which means that 5 years worth of writing modules
> : does *NOT* use fields.pm and suffers from name collision and not having
> : data encapsulation.
>
> True, but it is here now. As such, this should no longer be
> considered an issue for new, large scale projects that need
> inheritance.
I wish I could agree with you but, in my experience, I don't think it
will happen. Have you tried JavaScript? It sort-of supports OO-design,
but it is a hack to do it because you have to mess with "prototype" and
"parent" properties of every object. I haven't seen OO-JavaScript code
out there, and frankly, I am not too surprised since such code would
look so ugly.
> I'm not worried about CPAN. Most of the CPAN modules are built
> on a "uses" vs an "is-a" (inheritance) relationship.
>
> IMHO, inheritance is highly overrated. A uses relationship is
> much more useful and reusable in most cases. There never was field
> name collision in a uses relationship.
I wish I knew what "uses" is all about. Could you briefely explain?
Cheers,
David Smiley
ps, this wasn't sent to c.l.java.programmer since it shouldn't have been
sent there in the first place.
------------------------------
Date: 6 Oct 1998 16:25:15 GMT
From: bhilton@tsg.adc.com (Brand Hilton)
Subject: Re: sort question?
Message-Id: <6vdg9b$7p16@mercury.adc.com>
In article <361A2776.57C1F48C@min.net>, John Porter <jdporter@min.net> wrote:
>Brand Hilton wrote:
>>
>> print sort {substr($a,-2,1) cmp substr($b,-2,1) || $a cmp $b} <>;
>
>That's wrong, those should be substr($a,-1) and substr($b,-1).
BZZZT! Look again. I didn't chomp the input.
>Anyway, here's a faster one, by over 4x:
>
>@outputs =
>map { substr($_,1) }
>sort
>map { substr($_,-1) . $_ }
>@inputs;
Interesting. I started with that, but wanted a one-liner.
--
_____
|/// | Brand Hilton bhilton@adc.com
| ADC| ADC Telecommunications, ATM Transport Division
|_____| Richardson, Texas
------------------------------
Date: 6 Oct 1998 16:49:06 GMT
From: bhilton@tsg.adc.com (Brand Hilton)
Subject: Re: sort question?
Message-Id: <6vdhm2$7p26@mercury.adc.com>
In article <6vdg9b$7p16@mercury.adc.com>,
Brand Hilton <bhilton@tsg.adc.com> wrote:
>In article <361A2776.57C1F48C@min.net>, John Porter <jdporter@min.net> wrote:
>>Brand Hilton wrote:
>>>
>>> print sort {substr($a,-2,1) cmp substr($b,-2,1) || $a cmp $b} <>;
>>
>>That's wrong, those should be substr($a,-1) and substr($b,-1).
>
>BZZZT! Look again. I didn't chomp the input.
>
>>Anyway, here's a faster one, by over 4x:
>>
>>@outputs =
>>map { substr($_,1) }
>>sort
>>map { substr($_,-1) . $_ }
>>@inputs;
>
>Interesting. I started with that, but wanted a one-liner.
BZZZT myself here. I just remembered that I was actually trying to
make it more efficient when I went to the two-key sort. Yet further
proof that intuition is a crappy way to optimize. Always benchmark.
--
_____
|/// | Brand Hilton bhilton@adc.com
| ADC| ADC Telecommunications, ATM Transport Division
|_____| Richardson, Texas
------------------------------
Date: Tue, 06 Oct 1998 17:18:05 GMT
From: bart.mediamind@ping.be (Bart Lateur)
Subject: Re: Split question - retain the pattern?
Message-Id: <361a4f01.35713498@news.ping.be>
John Porter wrote:
>This one works.
>It doesn't attempt to remove the line-ending whitespaces;
>and it loses any text after the last dot/bang/hook.
>
>@sentences = /(.*?[.!?](?:\s+|$))/gs;
It doesn't work if, unintentional of course ;-), the final sentence
doesn't end with either of [.!?]. It'll gladly drop it. (Hey, some
people don't even bother to use any uppercase letters in their newsgroup
posts! So you shouldn't rely on people conforming to conventions, too
much.)
BTW shouldn't your closing paren for the first submatch, be put in front
of the second opening paren? Otherwise, it STILL keeps the spaces
following the dot/bang/hook.
Bart.
------------------------------
Date: Tue, 6 Oct 1998 10:40:29 -0400
From: Russell Schulz <Russell_Schulz@locutus.ofB.ORG>
Subject: using SYLK for random access cells in a new file (was Re: newbie question(EXCEL)!)
Message-Id: <19981006.104029.4h4.rnr.w164w_-_@locutus.ofB.ORG>
xcui@chat.carleton.ca (xinyu cui) writes:
> I am trying write a perl script to import a list of numbers to
> an EXCEL file, so far I can only get them printed to the first
> row. I want be able to print them to places I desire. For
> example, I'd like to able to print number 2, 3, 4 in random
> cells such as A1, B2, C3,
Excel will happily read SYLK files, which gives you tons of flexibility
in ordering your cells. you can simply:
1. write a header line
ID;PXCUI
2. write each cell with C;Y<row>;X<column>;K<value>
C;Y3;X5;K3.14 (would put 3.14 in cell E3)
C;Y5;X3;K6.28 (would put 6.28 in cell C5)
C;Y1;X1;K9.42 (would put 9.42 in cell A1)
3. write a footer line
E
you're done!
--
Russell_Schulz@locutus.ofB.ORG Shad 86c
------------------------------
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 3904
**************************************