@var is an array
$var is a scalar

$var[0] is also a scalar even though is an array element.
@var[0] is an array which contains more array elements, but in this case it
contains just a single element.

To create an array slice with more elements, you'll need something like
@var[0 .. n]

You need to always use $ for scalars and @ for arrays.


Teddy,
Teddy's Center: http://teddy.fcc.ro/
Email: [EMAIL PROTECTED]

----- Original Message -----
From: "Lance Murray" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 18, 2002 7:02 PM
Subject: Confusion on @array vs $array[] vs $array


Hello:

I have been fairly confused on the intermixing of array naming standards.
If I
understand correctly, the @array syntaxt is used to refer to the whole
array,
while $array[n] is refered to specific elements.

In my thinking, it would have been less confusing to use @array[n] to
address
specific elements, but Perl complaines bitterly when warnings &/or strict is
enabled.

Is the rational for the "$"array[] character for identifying "@"array
elements
due to the fact that the $ character has special meaning (denotes variable
or
element) within double quoted text, while the @ sign has no special meanign
within double quotes.

Anyway, perhaps one of you syntactical thought police could give me some
insights to the rational.  I find it very confusing that the $ and @
characters
are supposed to be used interchangeably to denote arrays, particularyly when
I'm
trying to fathom the relation to other issues such as scalar or list
context.
As I recall, hashes arso use % and @ interchangeably.

Thanks,

Lance

----------------------------------------------------------------------------
--
#!/usr/bin/perl
print "Lance Murray, Information and Communications Systems\n",  #
department
"The Church of Jesus Christ of Latter-Day Saints\n",  # employer and
religion
"(801) 240-6583, murraylk\@ldschurch.org\n\n",  # work phone number and
email
"\"Better to do a little well than a lot poorly (Socrates)\"\n"; #
philosophy
@P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub
p{
@p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^or
d
($p{$_})&6];$p{$_}=/
^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&&
close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep
rand(2)if/\S/;print

----------------------------------------------------------------------------
--
This message may contain confidential information, and is intended only for
the use of the individual(s) to whom it is addressed.


============================================================================
==



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


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to