In article <[EMAIL PROTECTED]>, Steve Grazzini wrote:

> On Tue, Jul 01, 2003 at 11:40:55AM +0200, Kevin Pfeiffer wrote:
>> I tried a couple more variations - and wonder why the last
>> one doesn't evaluate a count of the slice...
> 
> I think this is interesting:
>  
>> $string = @array[0..1];
>> print "$string\n";
>> # prints "oranges" (why not "2"?)
> 
> Do you expect the slice to return "2" because it looks
> like an array (and that's what an array would do) ?

> Or do you think $string should be "2" because there are
> two elements in the list ?

In preparation for a possible answer ("how to admit ignorance in a 
knowledgeable mannner") I went to perldoc and found the question(s), the 
answer(s) and more (thanks, though, to all here who also contributed):

       Found in /usr/lib/perl5/5.8.0/pod/perlfaq4.pod
       What is the difference between a list and an array?

       An array has a changeable length.  A list does not.  An
       array is something you can push or pop, while a list is a
       set of values.  Some people make the distinction that a
       list is a value while an array is a variable.  Subroutines
       are passed and return lists, you put things into list con­
       text, you initialize arrays with lists, and you foreach()
       across a list.  "@" variables are arrays, anonymous arrays
       are arrays, arrays in scalar context behave like the num­
       ber of elements in them, subroutines access their argu­
       ments through the array @_, and push/pop/shift only work
       on arrays.

       As a side note, there's no such thing as a list in scalar
       context.  When you say

           $scalar = (2, 5, 7, 9);

       you're using the comma operator in scalar context, so it
       uses the scalar comma operator.  There never was a list
       there at all!  This causes the last value to be returned:

So being a list is a little like being in purgatory - you're neither a 
scalar nor an array (yet)? ;-)


-- 
Kevin Pfeiffer
International University Bremen

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

Reply via email to