[7204] in Perl-Users-Digest
Perl-Users Digest, Issue: 829 Volume: 8
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Aug 8 14:16:30 1997
Date: Fri, 8 Aug 97 11:00:18 -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 Fri, 8 Aug 1997 Volume: 8 Number: 829
Today's topics:
Re: ? on Server Redirection with Perl <rootbeer@teleport.com>
Re: backquote command and floppy drive <rootbeer@teleport.com>
Re: foo bar <seay@absyss.fr>
Re: How to make Perl Regular expressions "Rightmost is (Jeff Stampes)
Re: Idiotic Perl Problem, can anyone help.... <clark@s3i.com>
Re: Is there a perl IDE? (Jonathan Feinberg)
Re: Learn the SECRET to Attract Women Easily <rootbeer@teleport.com>
Re: Newbie: $in question <petri.backstrom@icl.fi>
Re: parsing techniques (advice needed) <jpm@iti-oh.comNOSPAM>
perlIS information <qeren@dotshop.com>
Too Stupid For Their Own Good? [Intel v Randal] (Jeffrey Kegler)
Re: Why is `command @ARRAY` rejected by Perl, sometimes (Jeff Stampes)
Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Thu, 7 Aug 1997 08:56:19 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Bruce Hopkins <bruce@galileo.eng.wayne.edu>
Subject: Re: ? on Server Redirection with Perl
Message-Id: <Pine.GSO.3.96.970807085559.18326d-100000@kelly.teleport.com>
On Thu, 7 Aug 1997, Bruce Hopkins wrote:
> What is the URL to CPAN?
http://www.perl.com/CPAN/
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, 7 Aug 1997 11:53:40 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Glenn Rowe <growe@mic.dundee.ac.uk>
Subject: Re: backquote command and floppy drive
Message-Id: <Pine.GSO.3.96.970807114414.12163L-100000@kelly.teleport.com>
On Thu, 7 Aug 1997, Glenn Rowe wrote:
> I am running Perl 5 on Windows 95, and have a rather curious problem.
> Whenever I use a system call with the backquote syntax in a Perl
> script, as in:
>
> $fileContents = ` type testfile.txt `;
>
> the floppy drive gets accessed.
Perl shouldn't do that, but I wonder whether your command interpreter (or
the type command?) is the culprit.
> The command works OK, though. The file being read is not on the floppy,
> and the floppy isn't in my PATH environment, so I was wondering if there
> is any way of stopping this access. The main reason I want to stop this
> is that I use backquote commands in Perl CGI scripts and don't want the
> floppy accessed every time someone uses the CGI script.
Could the current working directory be on the floppy? There may be some
Windows-specific thing (such as an environment variable, perhaps?) that
could also affect this.
Of course, if type is (as I seem to recall) a lot like Unix's cat command,
maybe you want to simply read the file from Perl, something like this.
{
my $name = 'testfile.txt';
local($/, *FILE); # Magic
open FILE, $name or die "Can't open '$name': $!";
$fileContents = <FILE>; # Read whole file
close FILE;
}
If that runs the floppy drive, maybe something strange is going on. 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: Fri, 08 Aug 1997 18:35:16 +0200
From: Doug Seay <seay@absyss.fr>
Subject: Re: foo bar
Message-Id: <33EB4AC4.6693337A@absyss.fr>
Bart Lateur wrote:
>
> What is all this "foo bar" stuff that is sprinkled all over the
> documentation?
>
> I think it's pure nonsense, but not being a native English speaker, I'm
> curious where these words came from.
Misspelling of FUBAR which is pronounced the same as "foo bar". I heard
that FUBAR is (was?) common in the military. It stands for Fucked Up
Beyond All Reason.
Of course, there could be other stories.
I don't know why, but it was adopted early in the life of Unix (no, it
is not unique to Perl). It is not an everyday term (my mother wouldn't
know it), I only hear it used with computers.
- doug
------------------------------
Date: 8 Aug 1997 16:20:34 GMT
From: stampes@xilinx.com (Jeff Stampes)
Subject: Re: How to make Perl Regular expressions "Rightmost is greediest"?
Message-Id: <5sfh0i$7sg$2@neocad.com>
>From man perlre:
By default, a quantified subpattern is "greedy", that is, it
will match as many times as possible without causing the
rest pattern not to match. The standard quantifiers are all
"greedy", in that they match as many occurrences as possible
(given a particular starting location) without causing the
pattern to fail. If you want it to match the minimum number
of times possible, follow the quantifier with a "?" after
any of them.
main::(-e:1): 1
DB<1> $_ = 'aaacbbbcbbbaaac'
DB<2> if (/(a.*?)c/) {print $1}
aaa
DB<3> q
--
Jeff Stampes -- Xilinx, Inc. -- Boulder, CO -- jeff.stampes@xilinx.com
------------------------------
Date: 07 Aug 1997 10:48:55 -0400
From: Clark Dorman <clark@s3i.com>
To: "Julian Rose"<Julian@productivity-group.co.uk>,<Julian@prodgrp.demon.co.uk>
Subject: Re: Idiotic Perl Problem, can anyone help....
Message-Id: <dpvrq6obs.fsf@s3i.com>
"Julian Rose" <Julian@productivity-group.co.uk> writes:
> I have a perl script that's currently using the Unix ls command, I need to
> rewrite the section that does so in order to run it on a server that allows
> no unix commands.
>
> I believe I will have to use a readdir command, but I have no idea how to
> start, can anyone help, either an idiots guide to readdir, or, to earn
> eternal gratuity, rewrite the section to work for me :)) (I live in hope)
>
> The relevent defined variables for the script are:
>
> $basedir:
> Directory where the search page and graphic files are located.
>
> $baseurl:
> URL where search page and graphic files are located.
>
> @files:
> Location and type of files to search.
>
>
> The section in question is as follows:
>
> ----snip----
> sub get_files {
>
> chdir($basedir);
> foreach $file (@files) {
> $ls = `ls $file`;
> print "$ls";
> @ls = split(/\s+/,$ls);
> foreach $temp_file (@ls) {
> if (-d $file) {
> $filename = "$file$temp_file";
> if (-T $filename) {
> push(@FILES,$filename);
> }
> }
> elsif (-T $temp_file) {
> push(@FILES,$temp_file);
> }
> }
> }
> }
> ----snip----
>
> Currently, the print is in there so I can watch the output, the current
> output from the print "$ls" line is:
>
> ----snip----
> jobs/1068-ip.html
> jobs/2625-ip.html
> jobs/2741-ip.html
> jobs/2854-ip.html
> jobs/2922-ip.html
> jobs/blank.html
> Content-type: text/html
> ----snip----
>
> Any help would be most appreciated, I can be reached direct on
> Julian@prodgrp.demon.co.uk (quickest way).
Well, the logic of the subroutine is a little convoluted. There is no
reason to do the ls on the file if it is a textfile, so you should
just test for that and go on.
Also, it appears that you are using global variables all over the
place, and that's not standard "good programming".
Finally, the perlfunc page says that you are supposed to test with -f
before doing the -T because the -T has to read the file and it's
better to short circuit with the -f first.
Here's the way I'd do it:
sub get_files {
my ($basedir, @filelist ) = @_;
@FILES = ();
chdir $basedir or die "Cannot changedir to ($basedir), ($!)";
foreach $temp_file (@filelist) {
# If it is text, add it and go to next
if (-f $temp_file and -T $temp_file) {
push @FILES, $temp_file;
next;
}
# If it is a directory, get all the text files in it
if (-d $temp_file) {
opendir( ADIR, "$temp_file");
foreach $temp_mem ( readdir(ADIR)) {
if (-f "$temp_file/$temp_mem" and -T "$temp_file/$temp_mem") {
push @FILES, "$temp_file/$temp_mem";
}
}
closedir( ADIR );
next;
}
# If it is neither text or a directory, notify user
print STDERR "Error with filelist member ($temp_file)\n";
}
return @FILES;
}
--
Clark Dorman "Evolution is cleverer than you are."
http://cns-web.bu.edu/pub/dorman/D.html -Francis Crick
------------------------------
Date: 8 Aug 1997 14:33:32 GMT
From: jdf@pobox.com (Jonathan Feinberg)
Subject: Re: Is there a perl IDE?
Message-Id: <5sfans$6i8$1@gte1.gte.net>
KenVogt@rkymtnhi.com said...
> I can't seem to find a perl IDE for Win95 anywhere. What do you folks
> use? Is perl not worthy of anything more robust that Notepad?
My first recommendation, if you can afford it, is to upgrade to NT.
But even if you don't, I think you can still run a variety of text
editors that give you varying degrees of programmability. For the
caballistically inclined, there's the Win32 port of Emacs. I myself
use TextPad32, in which I've assigned a hotkey to run Perl on the
current document, capture the output, and take me to the source line
where Perl reports an error, etc. That's most of what you need from
an IDE, yes?
http://www.textpad.com
I also run vi from the cygwin bash port. I'm not caballistically inclined.
--
Jonathan Feinberg jdf@pobox.com Sunny Manhattan, NY
------------------------------
Date: Fri, 8 Aug 1997 07:44:24 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Clay Irving <clay@panix.com>
Subject: Re: Learn the SECRET to Attract Women Easily
Message-Id: <Pine.GSO.3.96.970808073746.9049K-100000@kelly.teleport.com>
On 8 Aug 1997, Clay Irving wrote:
> In <5s20ih$2e1@chronicle.concentric.net> Want More
> Dates???<tracy78@kilgrona.com> writes:
>
> >Learn the SECRET to Attract Women Easily
>
> >The SCENT(tm) Pheromone Sex Attractant For Men to Attract Women
>
> Damn. All this time I thought the secret was Perl...
I can get all the dates I want with Perl.
perl -e 'for (1..10) { print localtime(1e8*($_+rand))."\n" }'
--
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: Tue, 05 Aug 1997 10:24:36 +0300
From: Petri Backstrom <petri.backstrom@icl.fi>
Subject: Re: Newbie: $in question
Message-Id: <33E6D534.5D17@icl.fi>
Bill Ott wrote:
>
> I perform a get and call a cgi script, but when I try and look at $in,
> it keeps the name of the form item attached (i.e. $in = 'num=123').
> How can I strip off the 'num=' and just keep the value?
>
> --
> Bill Ott bott@grapids.lib.mi.us
Use CGI.pm for your Perl CGI scripts:
http://www-genome.wi.mit.edu/ftp/pub/software/WWW/cgi_docs.htm
It'll hide for you all the parsing, determining whether it was
a GET or POST request, etc., etc.
Example use:
use CGI;
my $query = new CGI;
my $num_value = $query->param('num');
Anyway, if you DO want to get just the '123' from
'num=123', then you could do something like:
( $num_value ) = $in =~ /=(.*)/;
regards,
...petri.backstrom@icl.fi
ICL Data Oy
Finland
------------------------------
Date: 8 Aug 1997 13:12:47 GMT
From: "Joshua Marotti" <jpm@iti-oh.comNOSPAM>
Subject: Re: parsing techniques (advice needed)
Message-Id: <01bca3fc$b57bb240$36601ec6@bach>
<Whistle>... wow, I would have simply said to read the book entitled
"Mastering RegExp"... There's probably an easier way of going about
this...
--
Josh,
Gavin Dragon...
Remove NOSPAM from address...
Eli the Bearded <usenet-tag@qz.little-neck.ny.us> wrote in article
<eli$9708071307@qz.little-neck.ny.us>...
> Tom Phoenix <rootbeer@teleport.com> wrote:
> > On 5 Aug 1997, Ryan wrote:
> > > I know there are modules for doing this, but just as an example, what
is
> > > the best way to go about parsing links from HTML pages and other
similar
> > > tasks?
> > A URL has a well-defined syntax which I believe could be matched by a
> > regular expression. Is that what you want, or are you needing to write
a
> > true parser in Perl? Hope this helps!
>
> Abigail has posted the RE in the past. Hers is not very well optimized
> AFAIK, but it works.
>
> ------ begin old article ------
> From: abigail@ny.fnx.com (Abigail)
> Subject: Re: regx for url
> Message-ID: <E13n3E.Jv9@news2.new-york.net>
> References: <wr3bucw59ig.fsf@kimbark.uchicago.edu>
> Date: Tue, 19 Nov 1996 03:59:38 GMT
>
> On Mon, 18 Nov 1996 04:09:58 GMT, Lyn A Headley wrote in
comp.lang.perl.misc:
> ++ hi,
> ++
> ++ I've searched CPAN pretty hard, but can't seem to find
> ++ a regx which matches urls. can anyone point me to it?
> ++ (or better yet, post the regx :) ).
>
> Post the regexp? Are you sure? It's pretty long, over 8k.
>
> Ok, here it goes: [concatenate the following lines]
>
>
(?:http://(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?:(?:(?:
[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a-z])|(?:
[A-Z]))|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\
d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z])))))|(?:(?:(?:\d
+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)))?)(?:/(?:(?:(?:(?:(?:(?:(?:
[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA
-Fa-f])))|[;:@&=])*)(?:/(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-
>
>
Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[;:
@&=])*))*)(?:\?(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*
'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[;:@&=])*))?)?)|(?:ftp://(?:(?:(?
:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\
dA-Fa-f])(?:[\dA-Fa-f])))|[;?&=])*)(?::(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(
?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[;?&=])*)
)?@)?(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))
>
>
|\d)(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:
(?:(?:[a-z])|(?:[A-Z]))|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-
z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z])
))))|(?:(?:(?:\d+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)))?))(?:/(?:(
?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[
\dA-Fa-f])(?:[\dA-Fa-f])))|[?:@&=])*)(?:/(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))
|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:
>
>
[\dA-Fa-f])))|[?:@&=])*))*)(?:;type=(?:[AIDaid]))))|(?:news:(?:(?:(?:(?:[a-z
])|(?:[A-Z]))(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|[.+_-])*)|(?:(?:(?:(?:(?:(?:[
a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-
Fa-f])))|[;/?:&=])+@(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?:(?
:(?:[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a-z])
|(?:[A-Z]))|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z])|(?:[A-Z]
))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|
>
>
(?:[A-Z])))))|(?:(?:(?:\d+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))|\*))|(?:nntp://(?
:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?:(?:(?:[a-z])|(?:[A
-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a-z])|(?:[A-Z]))|\d))
\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:
(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z])))))|(?:(?:(?:\d+)\.(?:\d+)\
.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)))?)/(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:[
a-z])|(?:[A-Z]))|(?:\d)|[.+_-])*)(?:/(?:\d+))?)|(?:teln
>
>
et://(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),
]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[;?&=])*)(?::(?:(?:(?:(?:(?:(?:[a-z])
|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f]
)))|[;?&=])*))?@)?(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(
?:(?:(?:[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a
-z])|(?:[A-Z]))|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z])|(?:[
A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-
>
>
z])|(?:[A-Z])))))|(?:(?:(?:\d+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)
))?))(?:/)?)|(?:gopher://(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|
\d)(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(
?:(?:[a-z])|(?:[A-Z]))|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z
])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z]))
)))|(?:(?:(?:\d+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)))?)(?:/(?:(?:
(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'()
>
>
,]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f]))|(?:[;/?:@&=])))(?:(?:(?:(?:(?:(?:[a-z
])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-
f]))|(?:[;/?:@&=]))*)(?:%09(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_
.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[;:@&=])*)(?:%09(?:(?
:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-
f])(?:[\dA-Fa-f]))|(?:[;/?:@&=]))*))?)?)?)?)|(?:(?:wais://(?:(?:(?:(?:(?:(?:
(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?:(?:(?:[a-z])|
>
>
(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a-z])|(?:[A-Z]))
|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)|-)*(
?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z])))))|(?:(?:(?:\d+)\.(?:
\d+)\.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)))?)/(?:(?:(?:(?:(?:[a-z])|(?:[A-Z])
)|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))*))|(?:
wais://(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?:(?:(?:[a-
z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(
>
>
?:(?:(?:[a-z])|(?:[A-Z]))|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[
a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z
])))))|(?:(?:(?:\d+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)))?)/(?:(?:
(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f
])(?:[\dA-Fa-f])))*)\?(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])
|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[;:@&=])*))|(?:wais://(?:(
?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?
>
>
:(?:(?:[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a-
z])|(?:[A-Z]))|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z])|(?:[A
-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z])))))|(?:(
?:(?:\d+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)))?)/(?:(?:(?:(?:(?:[a
-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-F
a-f])))*)/(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|
(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))*)/(?:(?:(?:(?:(?:[a-
>
>
z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa
-f])))*)))|(?:mailto:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:
[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f]))|(?:[;/?:@&=]))+))|(?:file://(?:
(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?:(?:(?:[a-z])|(?:[A-
Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a-z])|(?:[A-Z]))|\d))\
.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(
?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z])))))|(?:
>
>
(?:(?:\d+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))|localhost)?/(?:(?:(?:(?:(?:(?:(?:[
a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-
Fa-f])))|[?:@&=])*)(?:/(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-]
)|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[?:@&=])*))*))|(?:prosper
o://(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?:(?:(?:[a-z])
|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a-z])|(?:[A-Z])
)|\d))\.)*(?:(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z
>
>
])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z]))
)))|(?:(?:(?:\d+)\.(?:\d+)\.(?:\d+)\.(?:\d+)))))(?::(?:(?:\d+)))?)/(?:(?:(?:
(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-F
a-f])(?:[\dA-Fa-f])))|[?:@&=]))(?:/(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d
)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[?:@&=])))*)(
?:(?:;(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(
?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[?:@&]))=(?:(?:(?:(?:
>
>
(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(
?:[\dA-Fa-f])))|[?:@&]))))*)|(?:(?:(?:(?:[a-z])|(?:\d)|[+.-])+):(?:(?:(?:(?:
(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[
\dA-Fa-f]))|(?:[;/?:@&=]))*|(?://(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(
?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[;?&=])*)
(?::(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)|(?:[$_.+-])|(?:[!*'(),]))|(?:
%(?:[\dA-Fa-f])(?:[\dA-Fa-f])))|[;?&=])*))?@)?(?:(?:(?:
>
>
(?:(?:(?:(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\
d)|-)*(?:(?:(?:[a-z])|(?:[A-Z]))|\d))|(?:(?:(?:[a-z])|(?:[A-Z]))|\d))\.)*(?:
(?:(?:(?:[a-z])|(?:[A-Z]))(?:(?:(?:(?:[a-z])|(?:[A-Z]))|\d)|-)*(?:(?:(?:[a-z
])|(?:[A-Z]))|\d))|(?:(?:[a-z])|(?:[A-Z])))))|(?:(?:(?:\d+)\.(?:\d+)\.(?:\d+
)\.(?:\d+)))))(?::(?:(?:\d+)))?))(?:/(?:(?:(?:(?:(?:[a-z])|(?:[A-Z]))|(?:\d)
|(?:[$_.+-])|(?:[!*'(),]))|(?:%(?:[\dA-Fa-f])(?:[\dA-Fa-f]))|(?:[;/?:@&=]))*
))?)))
>
> Perhaps you prefer a slowly build up? Here's a little program
> constructed by turning the pseudo BNF of RFC 1738 into Perl
> regexps:
>
>
> #!/usr/local/bin/perl -w
>
> use Carp;
> use strict;
>
> # Be paranoid about using grouping!
>
> my $lowalpha = '(?:[a-z])';
> my $hialpha = '(?:[A-Z])';
> my $alpha = "(?:$lowalpha|$hialpha)";
> my $digit = '(?:\d)';
> my $safe = '(?:[$_.+-])';
> my $extra = '(?:[!*\'(),])';
> my $national = '(?:[{}|\\\\^~\[\]`])';
> my $punctuation = '(?:[<>#%"])';
> my $reserved = '(?:[;/?:@&=])';
> my $hex = '(?:[\dA-Fa-f])';
> my $escape = "(?:%$hex$hex)";
> my $unreserved = "(?:$alpha|$digit|$safe|$extra)";
> my $uchar = "(?:$unreserved|$escape)";
> my $xchar = "(?:$unreserved|$escape|$reserved)";
> my $digits = '(?:\d+)';
> my $alphadigit = "(?:$alpha|\\d)";
>
> # URL schemeparts for ip based protocols:
> my $urlpath = "(?:$xchar*)";
> my $user = "(?:(?:$uchar|[;?&=])*)";
> my $password = "(?:(?:$uchar|[;?&=])*)";
> my $port = "(?:$digits)";
> my $hostnumber = "(?:$digits\\.$digits\\.$digits\\.$digits)";
> my $toplabel =
"(?:(?:$alpha(?:$alphadigit|-)*$alphadigit)|$alpha)";
> my $domainlabel = "(?:(?:$alphadigit(?:$alphadigit|-)*$alphadigit)|"
------------------------------
Date: Fri, 08 Aug 1997 12:49:21 -0400
From: Carine Boneh <qeren@dotshop.com>
Subject: perlIS information
Message-Id: <33EB4E11.89A796C2@dotshop.com>
<HTML>
Does somebody know were it is possible to find the source code of perlIS,
and if a new version: 5.004, is available?
<P>Thank you!
<P>Qeren</HTML>
------------------------------
Date: 8 Aug 1997 15:44:04 GMT
From: cybersalem@algorists.com (Jeffrey Kegler)
Subject: Too Stupid For Their Own Good? [Intel v Randal]
Message-Id: <5sfes4$5cp@samba.rahul.net>
Letter from Cybersalem 10
Too Stupid For Their Own Good?
by Jeffrey Kegler
The _Oregonian_ article announcing Randal Schwartz's conviction
opened with these words:
"Randal L. Schwartz has always known he was smart. What he
had trouble grasping is that a person can be too smart for
his own good." [1]
Those of us in lines of business which depend on intellectual
capital forget that large segments of society hate smart people
for no better reason than that they are smart. It is useful to
be reminded that misology is far from rare. As Bertrand
Russell's oft-quoted remark puts it,
"most people would die sooner than think -- in fact, they do
so." [2]
_The Oregonian_ sounds like it was crowing over a triumph for
itself. It had every right to do so, as it can claim much of the
"credit" for Randal's plight. It was quite an accomplishment.
Randal was charged with disobeying Intel's work rules, which most
Americans will not approve of. But when disobeying the boss is a
crime, "America" will be simply a real estate term to its
residents. And even if Americans are willing to debase
themselves to consider the charges against Randal crimes, the
evidence was not there. So there is lots of "credit" to go
around.
_The Oregonian_ pursued Randal's conviction fiercely on four
fronts. First, it presented personal abuse as news. Randal was
a "cocky computer geek" [3] and a "social misfit" [4], with a
"perhaps justifiable ego" [5]. This personal vilification was
not in quote marks, not attributed to a source, not in an
editorial, not in a opinion piece, not prefixed with "allegedly".
It was presented as objective fact in news articles.
Randal's lawyer dealt with this abuse by warning the jury,
"You will hear he's very bright, inquisitive, creative, and
with exceptional talent in this particular area. Somebody,
as I expect you will hear, who is irritating and arrogant
..." [6]
_The Oregonian_ turned these remarks on their head, telling its
readers that Randal's personality is so awful his own attorney
could not keep from criticizing it:
"Even his defense lawyer, Marc A. Sussman, asked jurors not
to judge Schwartz's sometimes 'irritating or arrogant'
personality." [7]
If you suspect that _The Oregonian_ resented the braininess not
only of Randal, but of his whole profession, you have guessed
right. _The Oregonian_ made clear its target was not just Randal
but the whole "computer programming subculture". [8]
"To security-minded business people, no such thing as a
harmless hacker exists." [9]
"... many computer professionals are sympathetic to
Schwartz." [10]
"While fellow hackers may sympathize with Schwartz, to
others, that kind of 'testing' is clearly criminal. The law
says so." [11]
The second _Oregonian_ line of attack was an appeal to local
pride and economic interests. Their readers were told that,
while this was a crime "even a jury in California's Silicon
Valley would need help understanding" [12], "detectives predict
computer crime is going to become a growth industry in Washington
County" [13]. As if anyone could have missed the implication
that Randal had to be convicted for the sake of the Portland
area's economic future, an Intel lawyer spelled it out on the day
of the verdict.
"I think it was good for all the high-tech companies moving
into this area that the county is willing to pursue these
types of crimes" [14].
It had been a test, with the right answer "guilty" and _The
Oregonian_ helpfully providing it in advance, and not just by
implication.
In the third line of attack, _The Oregonian_ made two explicit
pre-verdict announcements of Randal's guilt. I have already
quoted part of the first:
"Sussman has submitted pretrial motions that show he will try
to paint his client as a good hacker who did not intend harm
and who was doing something that many people who have his
kind of job do to test security in computer systems."
"While fellow hackers may sympathize with Schwartz, to
others, that kind of 'testing' is clearly criminal."
"The law says so." [15]
Lest such "legal analysis" was too subtle, _The Oregonian_ was
even more explicit a few days later. An article explained the
implication of Randal's misdeeds for the local hi-tech industry,
especially the need for heightened vigilance against crimes
committed by employees and contractors. It was headlined
"Computer Crime has Arrived" [16]
The fourth _Oregonian_ line of attack was the invention of
falsehoods as needed to plug holes in the prosecution's case
[17]. Since all Randal's actions would have been legal if
authorized by management, one expects that managers testified
they told him not to do at least some of the things he was
charged with doing. And so the Oregonian reports:
"Schwartz's co-workers and managers from Intel testified that
they had, on several occasions, reprimanded Schwartz for
flouting policy over the years with unauthorized activities
on the computers." [18]
It does not name any of the managers, however, and for a very
good reason -- they don't exist. No Intel manager reported
reprimanding Randal for any unauthorized activity, and unless
Intel is organized very differently from the average company co-
workers do not issue reprimands. [19]
Randal's mistreatment so far has drawn more attention worldwide
than within Oregon, but something has clearly made many an
Oregonian upset with his eponymous newspaper, because _The
Oregonian_ has embarked on a vigorous breast-beating. A "Public
Editor" has been appointed to "focus on the newspaper's worst
mistakes and the public's harshest reactions", and she reports
"Reader opinions about The Oregonian's credibility tend to be
mixed. The complaints I get often are serious, well-founded
and helpful. As often as not, the comments reflect reader
disappointment that their paper somehow has let them down."
[20]
The Public Editor for _The Oregonian_ goes on to detail the plans
for dealing with the "credibility gap", starting with a series of
meetings which will include its powerful chief editor Sandy Rowe.
[21]
Meanwhile, _The Oregonian_ has been ignoring my small efforts to
learn what happened in Oregon v. Schwartz. Considerably more
astonishingly, they also pretend to ignore a _New York Times_
piece revealing the case to be very different from the one they
reported [22]. I say "pretend to ignore" since I know through
sources that _The Oregonian_ has been gathering new material on
Randal and his case. I do not feel very bold in assuming _The
Oregonian_ is saving this material to use for a prompt about-face
into the lead of the parade when it is started by more courageous
journalists.
But as long as _The Oregonian_ leaves material like its Oregon v.
Schwartz coverage on the record, all that can be said for staff
meetings on _Oregonian_ journalistic standards is that they will
occupy time which might otherwise be devoted to writing more such
material. [23]
Oregon's discontent with _The Oregonian_, which long had a
reputation for printing only what the powerful want Oregon to
hear, may have reached the crisis point with Senator Packwood's
unwanted advances against and assaults on women, many or most
happening in Oregon or to Oregon residents. These _The
Oregonian_ ignored until the _Washington Post_ broke the story --
despite Packwood making an advance on one of _The Oregonian_'s
own reporters [24]. The then editor lost his job in the wake of
this, but left Sandy Rowe a long and deeply embedded tradition of
acting stupid when confronting facts which displease the
powerful. What _The Oregonian_ may be having trouble grasping is
they can be too stupid for their own good.
===========================================================
The Letters from Cybersalem are among the material at the "Intel
v. Randal Schwartz" Web site:
<URL:http://www.rahul.net/jeffrey/ovs/>. The "Friends of Randal
Schwartz Web" site archives the material on all sides of this
issue, including the trial transcripts:
<URL:http://www.lightlink.com/fors>.
Of the many opportunities to do something, two head the list:
1.) To sign a letter objecting to Intel's role in this sorry
matter, see <URL:http://www.rahul.net/jeffrey/ovs/#todo>.
2.) To get an auto-reply giving Randal's own statement, and
discussing how you can contribute to his Legal Defense Fund, send
an empty message to <URL:mailto:fund@stonehenge.com>
Permission is granted to freely copy the Cybersalem Letters in
electronic form, or to print them for personal use.
===========================================================
Note 1: _Oregonian_, 7/26/95, page D1. All references are to
_The Oregonian_ unless otherwise indicated.
Note 2: _The ABC of Relativity_, the Chapter entitled "Is the
Universe Finite?". Its source is as tracked down by Kenneth
Blackwell of The Bertrand Russell Archives,
<URL:http://www.mcmaster.ca/russdocs/russell.htm>.
Note 3: 7/12/95, p. D1.
Note 4: 7/26/95, p. D1.
Note 5: 7/12/95, p. D2.
Note 6: Tr. 7-12-95,
<URL:http://www.lightlink.com/fors/court/7-12-95.txt>, p. 56,
lines 20-23.
Note 7: 7/26/95, D1.
Note 8: 7/26/95, p. D1.
Note 9: 7/12/95, p. D1.
Note 10: 7/12/95, p. D2.
Note 11: 7/12/95, p. D2.
Note 12: 7/12/95, D2.
Note 13: 7/21/95, B7.
Note 14: John H. Woodard, quoted in 7/26/95, D5.
Note 15: 7/12/95, D2.
Note 16: 7/21/95, B1.
Note 17: This letter will not attempt a full catalog of these.
Note 18: 7/22/95, B5.
Note 19: Some co-workers did indeed testify to raising issues
with Randal about the charged behavior. Of interest in
interpreting these and the level of concern behind them is that
no manager was informed, and no contemporary written record was
generated -- all the evidence of this is from recollections
recorded after Intel decided to proceed against Randal legally.
Note 20: "Trying to bridge the credibility gap", Michele
McLellan, 7/20/97, page E1.
Note 21: "Sandra Mims Rowe is one of the most powerful unelected
persons in Oregon", says Steve Forrester, publisher of The Daily
Astorian in Oregon, in a column in that paper. Quoted from
"Journalists on Journalism", Counter Point, October 1996,
<URL:http://www.wips.org/octcountrpt.htm>.
Note 22: Peter Lewis's "Technology" column, _The New York
Times_, November 27, 1995, page D5.
Note 23: For the record, I am asking that _The Oregonian_
retract the following articles: 7/12/95, D1, "Trial over Intel
intruder takes aim at high-tech's intricacies", Fiona M. Ortiz;
7/16/95, Business section, "Intel workers testify against
consultant", Fiona M. Ortiz; 7/20/95(?), "State rests in computer
consultant's trial", Fiona M. Ortiz; 7/21/95, B1, "Computer Crime
has arrived", Cristine Gonzalez; 7/22/95, B1, "Intel consultant
on defense", Holly Danks; 7/26/95, D1, "Computer expert convicted
in hacking", Fiona M. Ortiz; 9/20/95, D5, "Intel case brings
probation", Fiona M. Ortiz; and 12/28/95, the Washington County
"Neighbors" section, page 6, "Highlights and Lowlights: Worst
Defense". For the last, anonymous, piece, while I could
understand the writer's reluctance to give his name, the public
has a right to know who is responsible.
Note 24: Bridgett Taylor, "Journalism, Cronyism, and Bob
Packwood: What Took So Long, Anyway?",
<URL:http://www.csc.vsc.edu/Com.web/PACK.html>. This article
refers to the _Washington Journalism Review_ as its source for
this.
------------------------------
Date: 8 Aug 1997 16:03:26 GMT
From: stampes@xilinx.com (Jeff Stampes)
Subject: Re: Why is `command @ARRAY` rejected by Perl, sometimes.
Message-Id: <5sfg0e$7sg$1@neocad.com>
Ronald Fischer (rovf@earthling.net) wrote:
: runs fine. Is this a bug? Does Perl 5.004 exhibit the same behaviour?
I'm not sure if it's a bug, but 5.004_01 does behave the same way
--
Jeff Stampes -- Xilinx, Inc. -- Boulder, CO -- jeff.stampes@xilinx.com
------------------------------
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 829
*************************************