Data::Dumper has been a very useful list debugging tool, for a very unneccessary
problem.
What are these?
$x[$a][$b]
$x->[$a]->[$b]
${$x[$a]}->[$b]
We wish to believe that there are no pointers in Perl, just references. We are
lying to ourselves.
The desire to have $x->[$a] rather than just $x[$a] lies in the temptation, that
lingers on, to work with c pointers. We just won't want to admit our attachment to the
differentiation between real values and pigeon holes. That is an indulgence.
In Java, everything is a pigeon hole and that's really good.
The noise in Perl lists (hash and arrays) is simply too much to bear. So much - so
that a
lot people, whom I acquainted with, just won't go beyond the first level of Perl lists.
@, % and whatnots seems to have confused me more than helping me accentuate their
characteristics. Are we wanting machine friendly users or user friendly machines?
Maybe we want a highly capable utility with a syntax that allows us to proudly
confound those around us. That has the high possibility of keeping our salaries
at a premium.
Either symmetrically use arrows all the way, or symmetrically discard them. By using
arrows all the way, we admit to non-discrimination of references. An admission which
then make discarding arrows the more efficient case. The arrow in Perl has two distinct
and non-related functions, as syntactic separators for references to values and for
objects to members. We should use it for just one of them.
Each of us have our own local symmetries. Sometimes and many times we have to
dissolve the efficiency of our local symmetries to unify with the symmetries of our
neighbours for more coherence. To adherents of Perl cryptology, if you believe that
@,% and -> are comprehensive, pull yourself out of your bubble and think again.
[EMAIL PROTECTED] on 08/17/2000 10:48:00 AM
To:
cc: [EMAIL PROTECTED]@Internet (bcc: Syloke Soong/Americas/NSC)
Subject: Re: RFC 109 (v1) Less line noise - let's get rid of @%
To go through a few points that has arisen:
o Why do I think "@" is useless?
OK clearly @x is a list. Good old perl4.
But what is $x[3] ?
It could be a scalar.
BUT it could be a reference to a list.
It could be a reference to a 2D PDL image.
etc.
so clearly we have no real idea what it is or how to handle it. The @x
case may have been useful in Perl4 but the world is now much more complicated.
o Why do I think perl has too much line noise? Because of code like this:
@{$x->{$$fred{Blah}}}[1..3]
I believe we need to think of ways of trying to sort out the messes use
of references in perl currently promote. One way is to make everything a
$x as I outlined, then have everything which is not a simple scalar passed
by reference automatically. Clearly there could be other solutions but
something must be done.
People on this list seem very passionate about these sort of constructs, but
I think if one took a poll of less godlike users there would be a different
opionion.
I've read all the articles about context and grammar and about Perl being the
first post-modern lanuage too.
o Why don't I just bugger off and use python?
Well I am getting tempted. :) Seriously I like perl, I like it's easy control
structures and it's lack of object-mania. It's much better for simple stuff.
Now I've been told several times to bugger off and use python can we take
that argument as read and get back to some more constructive discussion about
what is good in Perl, and what is good in Python too and how Perl might be
improved.
Karl