http://qs321.pair.com?node_id=30579


in reply to RE: RE: RE: Win32::MemoryInfo
in thread Win32::MemoryInfo

Okay. I see what you're saying about the parameters now. I was thinking of doing something like this:
my %meminfo = { TotalPhys=>0, AvailPhys=>0 }; MemoryStatus(\%meminfo,"KB");

but it seemed like too much work to make the user do, and setting hash values to 0 might be confusing. It would lessen the task of checking the parameter list, though, and we still have a hash reference which I agree is better than returning a specifically ordered list. Maybe I can include both options?

Guildenstern
Negaterd character class uber alles!

Replies are listed 'Best First'.
RE (tilly) 5: Win32::MemoryInfo
by tilly (Archbishop) on Sep 01, 2000 at 21:57 UTC
    Silly trick:
    my %args = %default, @_; foreach my $arg (keys %args) { unless (exists $allowed{$arg}) { croak("Unrecognized argument '$arg' passed to MemoryStatus."); } }
    Just put all possible defaults in %default and the user can override any combination they want, and your %allowed check will catch most typos and misunderstandings of the API.