[NCLUG] perl/programming question

mike cullerton michaelc at cullerton.com
Mon Feb 19 11:51:42 MST 2001


thanks charles, this is what the doctor ordered.

on 2/19/01 11:48 AM, Charles Clarke at clarke at clarkecomputer.com wrote:

> If you do a "man perlobj" and read it, it will answer your question for
> you.  From the first page of the man page...
> 
> 
> 3.  A method is simply a subroutine that expects an object
> reference (or a package name, for class methods) as
> the first argument.
> 
> So, $S contains the object reference and %params now contains %blocks
> 
> charles
> 
> On Mon, 19 Feb 2001, S. Luke Jones wrote:
> 
>> Date: Mon, 19 Feb 2001 08:55:19 -0700
>> From: "S. Luke Jones" <luke at 6d.com>
>> Reply-To: nclug at nclug.org
>> To: nclug at nclug.org
>> Subject: Re: [NCLUG] perl/programming question
>> 
>> Sean Reifschneider wrote:
>>> On Sun, Feb 18, 2001 at 09:33:47PM -0700, mike cullerton wrote:
>>>> sub page_out {
>>>> my $S = shift;
>>>> my %params = @_;
>>>> so, does %params now contain %blocks?
>>> 
>>> My guess would be that %params contains all but the first element of
>>> %blocks.  "shift" consumes one argument.  It could also be that $S
>>> contains "%blocks", and "%params" is nothing though.  I never really
>>> could understand how to pass an array to a function in Perl.
>> 
>> Well, they're passing the hash to a subroutine so it will get flattened
>> into an array. Then, before they can turn it back into a hash, they
>> peel off the first element with a shift. The problem here is that the
>> definition of "first" is undefined since this is a hash, which perl
>> will store however it feels like. The standard idiom if you care about
>> the ordering of the hash is to do something like:
>> 
>> for $k in (sort keys %hash) {
>> do something
>> }
>> 
>> I've attached a sample perl program for anybody to play with if they want
>> to figure this one out, because it beats me.
>> 
>> Luke Jones
> 
> 
> --------------------------------------------------------------------------
> Domain hosting from $15/month with error log analysis and link checking.
> http://www.clarkecomputer.com/sig.html       domains at clarkecomputer.com
> 


-- mike cullerton   michaelc at cullerton.com





More information about the NCLUG mailing list