[32882] in Perl-Users-Digest
Perl-Users Digest, Issue: 4160 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Mon Mar 3 11:09:45 2014
Date: Mon, 3 Mar 2014 08:09:04 -0800 (PST)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Perl-Users Digest Mon, 3 Mar 2014 Volume: 11 Number: 4160
Today's topics:
Re: grep $re gotcha (Tim McDaniel)
Re: grep $re gotcha <uri@stemsystems.com>
Re: grep $re gotcha <rweikusat@mobileactivedefense.com>
Re: last iteration of a for loop <tzz@lifelogs.com>
Re: last iteration of a for loop <tzz@lifelogs.com>
Re: use strict; use warnings; (Tim McDaniel)
Re: use strict; use warnings; <johnblack@nospam.com>
Re: use strict; use warnings; <triflemenot@protocol.invalid>
Re: use strict; use warnings; <daves@orpheusmail.co.uk>
Re: use strict; use warnings; <ben@morrow.me.uk>
Re: use strict; use warnings; (Tim McDaniel)
Re: use strict; use warnings; (Tim McDaniel)
Re: use strict; use warnings; <kaz@kylheku.com>
Re: use strict; use warnings; <rweikusat@mobileactivedefense.com>
Re: using a library <uri@stemsystems.com>
Re: using a library <triflemenot@protocol.invalid>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Mon, 3 Mar 2014 00:41:37 +0000 (UTC)
From: tmcd@panix.com (Tim McDaniel)
Subject: Re: grep $re gotcha
Message-Id: <lf0j41$47f$1@reader1.panix.com>
In article <87ppm4tq9m.fsf@sable.mobileactivedefense.com>,
Rainer Weikusat <rweikusat@mobileactivedefense.com> wrote:
>tmcd@panix.com (Tim McDaniel) writes:
>> Dr.Ruud <rvtol+usenet@xs4all.nl> wrote:
>
>[...]
>
>>>Though map returns copies, and grep returns aliases.
>>
>> Hrm! Thank you for the correction!
>>
>> Is there any way in Perl to have map return something that acts like
>> an alias, where
>>
>>>perl -wE'
>>> my @a = (42 .. 45);
>>>
>>> ++$_ for map { some_magic_involving($_) } @a;
>>> say "@a";
>>
>> would produce
>>
>>>43 44 45 46
>>
>> ?
>
>Yes. It is called 'a foreach/ for' loop:
I can do two maps in a statement. How do I do two foreach modifiers
on one statement? I had considered two foreach modifiers for Marek's
problem of initializing the deck (one foreach for the suits, one
foreach for the values), but realized I couldn't do it.
I'm asking above and here out of curiosity. If you want to grep,
grep; if you want to map, map; I don't want to look into aliasing if I
can write a loop of a few lines to do whatever it is.
--
Tim McDaniel, tmcd@panix.com
------------------------------
Date: Mon, 03 Mar 2014 01:36:31 -0500
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: grep $re gotcha
Message-Id: <8761nv7pqo.fsf@stemsystems.com>
>>>>> "BM" == Ben Morrow <ben@morrow.me.uk> writes:
BM> Quoth John Bokma <john@castleamber.com>:
>>
>> Maybe not a gotcha for everybody, but I bumped into this today:
>>
>> perl -e '
>> my $re = qr/[aeiou]/;
>> print join( ", ", grep $re, "a".."z" ), "\n";
>> print join( ", ", grep /$re/, "a".."z" ), "\n";
>> '
>> a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
>> a, e, i, o, u
>>
>> I was expecting grep $re to be short for grep /$re/.
BM> perldoc -f grep? The first argument to grep is an expression; a qr// is
BM> a reference, so it's always true. split is the only builtin which
BM> implicitly treats its argument as a regex.
actually there is one other case which is not well known and should
never be used. =~ when given an expression on the right which is not one
of the ops s///, tr/// or m// or // will treat that expression as
m//. we usually call it the bind operator (vs newbies who seem to think
it is a regex or match op) as it binds the left expression to the
operand on the right. but it will also default to making that right
operand a regex.
uri
------------------------------
Date: Mon, 03 Mar 2014 15:01:25 +0000
From: Rainer Weikusat <rweikusat@mobileactivedefense.com>
Subject: Re: grep $re gotcha
Message-Id: <87ha7fuy0q.fsf@sable.mobileactivedefense.com>
tmcd@panix.com (Tim McDaniel) writes:
> In article <87ppm4tq9m.fsf@sable.mobileactivedefense.com>,
> Rainer Weikusat <rweikusat@mobileactivedefense.com> wrote:
>>tmcd@panix.com (Tim McDaniel) writes:
>>> Dr.Ruud <rvtol+usenet@xs4all.nl> wrote:
>>
>>[...]
>>
>>>>Though map returns copies, and grep returns aliases.
>>>
>>> Hrm! Thank you for the correction!
>>>
>>> Is there any way in Perl to have map return something that acts like
>>> an alias, where
>>>
>>>>perl -wE'
>>>> my @a = (42 .. 45);
>>>>
>>>> ++$_ for map { some_magic_involving($_) } @a;
>>>> say "@a";
>>>
>>> would produce
>>>
>>>>43 44 45 46
>>>
>>> ?
>>
>>Yes. It is called 'a foreach/ for' loop:
>
> I can do two maps in a statement. How do I do two foreach modifiers
> on one statement?
This can be done by (ab-)using grep to do an in-place map, cf
------
my @v = (1,2,3,4);
++$_ for grep { ++$_; 1 } grep { $_ *= 2; 1 } @v;
print("$_\n") for @v;
------
------------------------------
Date: Mon, 03 Mar 2014 07:38:35 -0500
From: Ted Zlatanov <tzz@lifelogs.com>
Subject: Re: last iteration of a for loop
Message-Id: <87ppm3bgok.fsf@lifelogs.com>
On Thu, 27 Feb 2014 23:24:31 +0000 Ben Morrow <ben@morrow.me.uk> wrote:
BM> Quoth Ted Zlatanov <tzz@lifelogs.com>:
>> On 26 Feb 2014 14:30:26 GMT hymie@lactose.homelinux.net (hymie!) wrote:
>>
h> So I've got a for loop. It's doing some printing, and at the end of
h> what it prints, it prints a separator line like
>>
h> ----------
>>
h> Is there an easy way that I can tell my loop "don't print the separator
h> after the last iteration"?
>>
>> Easiest way IMO, and a useful idiom regardless:
>>
>> while (my $key = pop @list) ...
BM> If you're going to build an array anyway, you might as well just use
BM> join. (If you want more general 'joining', see List::Util::reduce.)
join() is sometimes less efficient because it builds a temporary string
just for printing it out. But my approach often requires a temporary
array, which is sometimes less expensive, sometimes more than join()...
It depends on the task, really.
A big advantage of using a temporary array is that it can be augmented
during the loop. I've build simple crawlers (web and data structure)
that way, pushing things at both ends of @list. A fire-and-forget
folding (reducing) function is tempting but often not the right way for
these situations.
Regarding List::Util::reduce, it also does not tell you that you're at
the last iteration. That really is a useful piece of knowledge in many
cases.
Ted
------------------------------
Date: Mon, 03 Mar 2014 07:43:18 -0500
From: Ted Zlatanov <tzz@lifelogs.com>
Subject: Re: last iteration of a for loop
Message-Id: <87lhwrbggp.fsf@lifelogs.com>
On Fri, 28 Feb 2014 16:05:46 +0100 gamo <gamo@telecable.es> wrote:
g> El 27/02/14 12:11, Ted Zlatanov escribió:
>> my @list = sort keys %ENV;
>>
>> while (my $key = pop @list)
>> {
>> print "$key\n";
>> print "not last\n" if scalar @list;
>> print "last\n" unless scalar @list;
>> }
g> I miss in this discusion a solution using when/default.
g> Can not be as efficient as using if?
When you have to use older Perls a lot, like I do, you tend to avoid
when/default. It's not bad, just annoying when I have to rewrite the
code and deal with complaints, so I often stick to the oldest common
denominator (OCD) :)
Specifically in this case, the efficiency is about the same and I was
writing an example that can be copy-and-pasted easily, but normally I'd
store the check result instead of recalculating it twice.
Ted
------------------------------
Date: Sun, 2 Mar 2014 19:32:33 +0000 (UTC)
From: tmcd@panix.com (Tim McDaniel)
Subject: Re: use strict; use warnings;
Message-Id: <lf010h$k0c$1@reader1.panix.com>
In article <9mesta-li62.ln1@anubis.morrow.me.uk>,
Ben Morrow <ben@morrow.me.uk> wrote:
>0 is not a good initial value for a Perl variable.
...
>A statement like
>
> my $i = 0;
>
>is less obviously wrong, but the number 0 is not quite 'neutral' in
>Perl: if this variable is to be used as a string it now contains a
>non-empty string, which is unhelpful.
"You shouldn't put an apple in your lunchbox. What if you want that
space for a banana, or a canteloupe?" Well, if I really have decided
that I really do want an apple with my lunch, then kindly stop acting
condescending by telling me that I shouldn't put an apple in my
lunchbox!
So I disagree with that philosophy. A variable should be assigned a
value that is needed or useful IF that value will be used in an
expression before the variable is assigned to again. (If the variable
will be stomped without using its value, then it should not be
initialized.)
And if the value is to be used as a number, which is frequently the
case, it might as well hold an appropriate number. For example, if
it's a counter for the number of rows that have been read, it really
should be
my $i = 0;
I don't want
print "$i rows read.\n";
to produce
rows read.
if there were none, and I don't want to bother with any of
print 0 + $i, " rows read.\n";
print $i || 0, " rows read.\n";
print "${\($i + 0)} rows read.\n";
>Perl has a special value called 'undef' which numifies as 0 and
>stringifies as the empty string
and can spew out messages on STDERR with "use warnings;", which I
always use. NO, I'm not going to turn off warnings for uninitialized
values. I am careful with packing my lunches, thank you, and I prefer
to be told when I overlook something.
--
Tim McDaniel, tmcd@panix.com
------------------------------
Date: Sun, 2 Mar 2014 13:40:22 -0600
From: John Black <johnblack@nospam.com>
Subject: Re: use strict; use warnings;
Message-Id: <MPG.2d7c1d5d1b47b7fd9897be@news.eternal-september.org>
In article <87zjla3nu7.fsf@sable.mobileactivedefense.com>, rweikusat@mobileactivedefense.com
says...
>
> John Black <johnblack@nospam.com> writes:
> > In article <87d2i7kxqe.fsf@sable.mobileactivedefense.com>, rweikusat@mobileactivedefense.com
> > says...
> >>
> >> John Black <johnblack@nospam.com> writes:
> >> > In article <87y50xhjyg.fsf@sable.mobileactivedefense.com>, rweikusat@mobileactivedefense.com:
> >>
> >> [...]
> >>
> >> > Arr[50]
> >> >
> >> > people usually call that "location 50" or "Arr 50". No one would call that location 51, nor
> >> > would they refer to location 0 (Arr[0]) as location 1. So its preferable not to call
> >> > location 0, the first location or location 50, the 51st location.
> >>
> >> A 'so' doesn't make a conclusion.
> >
> > Its location 50, so its also the 50th location. Why make it
> > confusing?
>
> I suggest that you ask a few people without 'computing background' how
> many 'locations' they expect to be in front of "the 50th location" and
> then reconsider your idea of what is and isn't confusing ...
Why would it matter what people who don't have a computing background would think about a
computer programming issue, namely array indexing? Everyone in computers knows that
computers start counting at 0 whereas most people if you asked them to count to 10 would say
1, 2, 3, ...
John Black
------------------------------
Date: Sun, 02 Mar 2014 19:49:42 +0000
From: Trifle Menot <triflemenot@protocol.invalid>
Subject: Re: use strict; use warnings;
Message-Id: <3l27h9tdr4ejhur3c936qr9ubno0qo3i9q@4ax.com>
On Sun, 2 Mar 2014 13:40:22 -0600, John Black <johnblack@nospam.com>
wrote:
> Everyone in computers knows that computers start counting at 0
PL/I can start array index at 1. Maybe Perl too.
------------------------------
Date: Sun, 02 Mar 2014 21:38:47 +0000 (GMT)
From: Dave Stratford <daves@orpheusmail.co.uk>
Subject: Re: use strict; use warnings;
Message-Id: <53e245d48adaves@orpheusmail.co.uk>
In article <3l27h9tdr4ejhur3c936qr9ubno0qo3i9q@4ax.com>,
Trifle Menot <triflemenot@protocol.invalid> wrote:
> On Sun, 2 Mar 2014 13:40:22 -0600, John Black <johnblack@nospam.com>
> wrote:
> > Everyone in computers knows that computers start counting at 0
But not all computer languages.
Dave
--
Dave Stratford - ZFCB
http://daves.orpheusweb.co.uk/
------------------------------
Date: Sun, 2 Mar 2014 23:48:58 +0000
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: use strict; use warnings;
Message-Id: <akscua-74j.ln1@anubis.morrow.me.uk>
Quoth tmcd@panix.com:
> In article <9mesta-li62.ln1@anubis.morrow.me.uk>,
> Ben Morrow <ben@morrow.me.uk> wrote:
> >0 is not a good initial value for a Perl variable.
> ...
> >A statement like
> >
> > my $i = 0;
> >
> >is less obviously wrong, but the number 0 is not quite 'neutral' in
> >Perl: if this variable is to be used as a string it now contains a
> >non-empty string, which is unhelpful.
>
> "You shouldn't put an apple in your lunchbox. What if you want that
> space for a banana, or a canteloupe?" Well, if I really have decided
> that I really do want an apple with my lunch, then kindly stop acting
> condescending by telling me that I shouldn't put an apple in my
> lunchbox!
>
> So I disagree with that philosophy. A variable should be assigned a
> value that is needed or useful IF that value will be used in an
> expression before the variable is assigned to again. (If the variable
> will be stomped without using its value, then it should not be
> initialized.)
You snipped some rather important context. Marek's code looked like
this:
my @startingdeck = 0;
my @hearts = 0;
my @diamonds = 0;
my $i = 0;
so this was obviously not a carefully-chosen default, but simply 'I need
to create this variable, so I'll put 0 in it'.
> And if the value is to be used as a number, which is frequently the
> case, it might as well hold an appropriate number. For example, if
> it's a counter for the number of rows that have been read, it really
> should be
> my $i = 0;
> I don't want
> print "$i rows read.\n";
> to produce
> rows read.
> if there were none, and I don't want to bother with any of
> print 0 + $i, " rows read.\n";
> print $i || 0, " rows read.\n";
> print "${\($i + 0)} rows read.\n";
Yes, if you have a good reason to initialise a variable to 0, you should
obviously do so. I was talking about the situation where you don't.
> >Perl has a special value called 'undef' which numifies as 0 and
> >stringifies as the empty string
>
> and can spew out messages on STDERR with "use warnings;", which I
> always use. NO, I'm not going to turn off warnings for uninitialized
> values. I am careful with packing my lunches, thank you, and I prefer
> to be told when I overlook something.
Yes, I know I skipped over that detail. Personally I don't consider
uninitiailisized value warnings to be useful in a program with
properly-scoped variables, but that's rather beside the point here. What
I was trying to say (perhaps unclearly) was: if, for some reason, you
need to create a variable before you have a useful value to put in it,
undef is a better non-specific initial value that 0. Apart from anything
else, in a situation like this:
my $x;
if (foo()) {
$x = 1;
}
elsif (bar()) {
$x = 2;
}
you will now get a warning if you missed a condition :).
Ben
------------------------------
Date: Mon, 3 Mar 2014 00:35:34 +0000 (UTC)
From: tmcd@panix.com (Tim McDaniel)
Subject: Re: use strict; use warnings;
Message-Id: <lf0iom$r3c$1@reader1.panix.com>
I wasn't considering Marek's code specifically, but general
philosophical points. In the context of Marek's code, certain initial
values may make more sense than others.
In article <akscua-74j.ln1@anubis.morrow.me.uk>,
Ben Morrow <ben@morrow.me.uk> wrote:
>You snipped some rather important context. Marek's code looked like
>this:
>
> my @startingdeck = 0;
> my @hearts = 0;
> my @diamonds = 0;
> my $i = 0;
>
>so this was obviously not a carefully-chosen default, but simply 'I
>need to create this variable, so I'll put 0 in it'.
I take your point. And indeed,
> my @startingdeck = 0;
isn't good unless you indeed want that, which is identical to,
my @startingdeck = (0);
and that only presumably because your algorithm won't work unless the
array starts with one element and it should be 0. (I left off
commenting on the array initializations because I agreed with your
points on them.)
I didn't look at his code to know whether $i was going to be used
before being set. If it was not, then I agree with you: I think it
should not have been initialized at all.
>Personally I don't consider uninitiailisized value warnings to be
>useful in a program with properly-scoped variables,
More commonly, I have seen a typoed hash index along the lines of
$row->{MEDICALGROUPNUMBERID} = ...
...
... $row->{MEDICALGR0URNUMBERlD} ...
(I use Emacs and dynamic completion, so it's rare for me, but I
sometimes nod, and I review other people's code.) (BTW, there are
at least three typoes in that example.)
Occasionally I run off the end of an array. I might have screwed up
complicated control flow so not all possibilities were covered and a
variable was left unassigned -- you mentioned that possibility in a
section of code at the bottom that I snipped. A sub might return
undef in a corner case that I didn't think about.
That is, even with declaring all variables and using lexical
variables, I think that warnings about undef are useful.
>if, for some reason, you need to create a variable before you have a
>useful value to put in it, undef is a better non-specific initial
>value that 0.
or, as you know, if it's an array or hash, (). I mention this because
of a thread earlier. When I asked whether I should prefer
$i = undef;
or
undef $i;
I think it may have been you who pointed out that they are identical
for a scalar, but not for an array or a hash, so
undef ...whatever...;
is what I should use in general.
For initialization, my own practice is to initialize every variable if
its value is going to be accessed before it is next set -- even if my
initialization is the default. I do a lot of
my @a = ();
not because I don't know that () is the default, but to express that I
thought about it, and @a needs to be an empty array at this point
(often because things are going to be pushed into it). But for me,
my @a;
expresses that @a needs to be declared here for scope reasons (as in
the snipped example of "my $x;" outside an if structure that sets it
to two values in two branches), but it's going to be written to on all
code paths, so no initialization would be of use.
Similarly, I even had a script with several things like
my $last_event_x = undef;
for lag variables, because I wanted to document that yes, I intend it
to be undef specifically, because later code was like
if (we just hit the start of a new event x) {
if (defined $last_event_x) {
close out last event x
}
$last_event_x = $now
}
Idiosyncratic, but I think the extra documentation is useful.
--
Tim McDaniel, tmcd@panix.com
------------------------------
Date: Mon, 3 Mar 2014 00:38:13 +0000 (UTC)
From: tmcd@panix.com (Tim McDaniel)
Subject: Re: use strict; use warnings;
Message-Id: <lf0itl$lp$1@reader1.panix.com>
In article <53e245d48adaves@orpheusmail.co.uk>,
Dave Stratford <daves@orpheusmail.co.uk> wrote:
> On Sun, 2 Mar 2014 13:40:22 -0600, John Black <johnblack@nospam.com>
> wrote:
> > Everyone in computers knows that computers start counting at 0
>
>But not all computer languages.
C QUITE TRUE. 000000100
--
Tim McDaniel, tmcd@panix.com
------------------------------
Date: Mon, 3 Mar 2014 01:40:36 +0000 (UTC)
From: Kaz Kylheku <kaz@kylheku.com>
Subject: Re: use strict; use warnings;
Message-Id: <20140302172154.962@kylheku.com>
On 2014-03-02, John Black <johnblack@nospam.com> wrote:
> computer programming issue, namely array indexing? Everyone in computers
> knows that computers start counting at 0 whereas most people if you asked
> them to count to 10 would say
>
> 1, 2, 3, ...
Actually, everyone starts counting at zero.
For instance, how do you count apples in a basket?
If you use your fingers, for instance, you first close your fist, hiding all your
fingers. That's a zero. You are initializing a counter to zero.
This is when counting beings, not when the first item is noted.
Then, for each apple in the basket that has not been yet counted, you extend a finger,
and note that apple as counted.
(Starting with the middle finger, if there any "computer scientists" in the room who have
ever had anything to do with designing a language with 1 based arrays.)
If there are no apples in the basket, then there are no extended fingers: the count
remains at zero.
If you do not being counting at zero, you cannot correctly enumerate empty sets
and report that they have zero items.
In computer arrays, we use as the element index the count of the number of
direct and indirect predecessors which that element has in the sequence: how
many elements we have to skip or displace over to reach that item.
The indices represent a count: a count which does not include the indexed
element.
------------------------------
Date: Mon, 03 Mar 2014 15:29:10 +0000
From: Rainer Weikusat <rweikusat@mobileactivedefense.com>
Subject: Re: use strict; use warnings;
Message-Id: <87d2i3uwqh.fsf@sable.mobileactivedefense.com>
Kaz Kylheku <kaz@kylheku.com> writes:
> On 2014-03-02, John Black <johnblack@nospam.com> wrote:
>> computer programming issue, namely array indexing? Everyone in computers
>> knows that computers start counting at 0 whereas most people if you asked
>> them to count to 10 would say
>>
>> 1, 2, 3, ...
>
> Actually, everyone starts counting at zero.
>
> For instance, how do you count apples in a basket?
>
> If you use your fingers, for instance, you first close your fist, hiding all your
> fingers. That's a zero. You are initializing a counter to zero.
>
> This is when counting beings, not when the first item is noted.
Considering 'counting begins before something was counted', every
human being on this planet must obviously be constantly counting
everything which can conceivably be counted, IOW, this definition has no
meaning.
It's also easily shown to contradict reality: Eg, 1914 was the first
year of the first world war but 1913 wasn't its zeroth year. By that
time, this was a future event nobody anticipated.
> (Starting with the middle finger, if there any "computer scientists"
> in the room who have ever had anything to do with designing a language
> with 1 based arrays.)
As I wrote in another posting: An array represents a general, surjective
function mapping elements from one set to elements of another set which
happens to be defined in tabular form. And programming languages which
define it as such exist, notably, Ada (whose adherente as violently
insist that 'the natural order of things' is to start array indices with
1 and that only a dangerously deluded mind could want to come up with
anything different.
[...]
> In computer arrays, we use as the element index the count of the number of
> direct and indirect predecessors which that element has in the sequence: how
> many elements we have to skip or displace over to reach that item.
That's something which happens to be true in C because of the
equivalence of subscripting and pointer arithmetic and it has spread to
all kinds of other languages from there.
------------------------------
Date: Mon, 03 Mar 2014 01:30:43 -0500
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: using a library
Message-Id: <87a9d77q0c.fsf@stemsystems.com>
>>>>> "TM" == Trifle Menot <triflemenot@protocol.invalid> writes:
TM> On Fri, 28 Feb 2014 23:43:19 +0000 (UTC), tmcd@panix.com (Tim McDaniel)
TM> wrote:
>>> On Fri, 28 Feb 2014 15:26:50 -0500, Charlton Wilbur
>>> <cwilbur@chromatico.net> wrote:
TM> So you could pass a reference to the array. Like passing a
TM> pointer in C. The syntax for using it can be tricky though.
>>>>
>>>> Tricky? It would appear that the value of the advice is directly
>>>> proportional to the author's willingness to sign his name to it.
>> You appear to have some misunderstandings about the meanings of
>> "tricky"
TM> You and your good buddy treated that casual subjective remark as though
TM> it was a life threatening technical blunder. Its purpose went right over
TM> your heads. Tells me a lot your about mental state and group dynamics.
TM> It's not smart to join a gang of thugs. I could be a manager at work for
TM> all you know. Someone who enjoys firing arrogant little twerps.
>> Please be so kind as to add me to your killfile
TM> It's not nice to kill people. But you qualify for the ass clown list.
wow, another twit who wants to fight off the perl world. we haven't had
one like you in a while. usenet may be dying but twits live on
forever. i happen to know charlton and your assessment of him as a
stalker is not only wrong, but hilarious. it is always the twit who
thinks he is being stalked whereas the reality he is being corrected all
the time. look at purlgurl from a few years ago. you need to be much
better to rise (or fall as the case may be) to be that paranoid and
clueless. but we have hopes for you!
and perl refs are not tricky in any subjective or objective views. the
word choice was not only incorrect but damaging to any newbie the might
stumble upon your post. hence it was vigorously countered by those who
know better. i don't killfile people, i just laugh at them. to you i
say, hardy har har!
and by the way, i review perl people for my business as the perl
hunter. i placed charlton successfully - he knows his perl. if you were
to submit a resume, it would be rejected just on your attitude, let
alone your perl skills. please send me one. my /dev/null has been hungry
and underfed recently. and resumes with anonymous names don't get very
far.
uri
------------------------------
Date: Mon, 03 Mar 2014 09:51:58 +0000
From: Trifle Menot <triflemenot@protocol.invalid>
Subject: Re: using a library
Message-Id: <9si8h9h1vv9b2igf28qtf97tii7ndqh9vu@4ax.com>
On Mon, 03 Mar 2014 01:30:43 -0500, Uri Guttman <uri@stemsystems.com>
wrote:
> another twit who wants to fight off the perl world
A few (three?) are not the world.
> perl refs are not tricky in any subjective or objective views. the
> word choice was not only incorrect
Calling subjective opinions "incorrect" is incorrect.
> but damaging to any newbie
I doubt it. Maybe you're paranoid.
------------------------------
Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>
Administrivia:
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
Back issues are available via anonymous ftp from
ftp://cil-www.oce.orst.edu/pub/perl/old-digests.
#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 V11 Issue 4160
***************************************