TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TCLUG:19613] [OT] perl boogage?



This is discussed on page 95 of 'Perl Cookbook' as a way to grow or
truncate arrays. It may be useful if you know how big an array will
grow, but are adding values piecemeal (and so perl is spending time
allocating a little chunks of memory many times instead of one big chunk
once). Here are the results I have from a one liner:

-----
% perl -e '@a=(0,1,2,3,4);print"@a $#a\n";$#a=2;print"@a
$#a\n";$#a=12;print"@a $#a\n";'
0 1 2 3 4 4
0 1 2 2
0 1 2           12
% 
-----

So it looks like I can't get the values back (5.002 on Solaris).

Troy

Patrick McCabe wrote:
> 
> I get a syntax error using @#ITEMS.  However, $#ITEMS does equal 2 (in your
> example).
> 
> $#array is the index of the last element in the array.  It is documented, I
> have seen it many times, I just can't seem to find it right now.  I think it
> was more useful in the past when you could set the starting index of arrays
> to something other than zero.  I think you still can, but its discouraged.
> I promptly forgot how to do that because it seems like such a bad idea.
> 
> Patrick McCabe
> 
> ----- Original Message -----
> From: Phil Plumbo <psp@printwareinc.com>
> To: <tclug-list@mn-linux.org>
> Sent: Friday, July 14, 2000 3:24 PM
> Subject: [TCLUG:19613] [OT] perl boogage?
> 
> > I ran across a curiosity in a perl program today, which can be explained
> > like so:
> >
> >  @ITEMS = (0, 1, 2);
> >  print @#ITEMS;                # prints "2";
> >
> >
> > So if you wedge a '#' into an array name, it means "the length of the
> array,
> > less 1" (Oh, of course!). The guy was using it as a loop limit.
> >
> > I couldn't find anything on this in any of the perl books I own... is this
> a
> > documented feature of the language, or just a fetid schbat of boogage?
> >
> > To me, it looks suspiciously like a fetid schbat of boogage.
> >
> > Phil Plumbo.
> >
> > Or, perhaps, a turgid wad of hell-snot.
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: tclug-list-unsubscribe@mn-linux.org
> > For additional commands, e-mail: tclug-list-help@mn-linux.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tclug-list-unsubscribe@mn-linux.org
> For additional commands, e-mail: tclug-list-help@mn-linux.org

-- 
Troy Johnson   mailto:john1536@tc.umn.edu   http://umn.edu/~john1536/
As with the Christian religion, the worst advertisement for Socialism
is its adherents.
	-- George Orwell