in reply to Re^2: Pesky warnings after calling Win32 API
in thread Pesky warnings after calling Win32 API

So I decided to download Win32::API and run your code. My fix does indeed remove the warning at the line you mentioned. However, there are apparently more warnings, which are removed by the following:
my $MEMORYSTATUS = Win32::API::Struct->new('MEMORYSTATUS'); { # Avoid warning at Struct.pm line 214 $MEMORYSTATUS->align('auto'); } { # Avoid all other warnings in Struct.pm $MEMORYSTATUS->{'dwLength' } = 0; $MEMORYSTATUS->{'MemLoad' } = 0; $MEMORYSTATUS->{'TotalPhys' } = 0; $MEMORYSTATUS->{'AvailPhys' } = 0; $MEMORYSTATUS->{'TotalPage' } = 0; $MEMORYSTATUS->{'AvailPage' } = 0; $MEMORYSTATUS->{'TotalVirtual'} = 0; $MEMORYSTATUS->{'AvailVirtual'} = 0; }

I'd like to correct myself regarding dwLength. The docs say Windows will set it for you. Very odd.

Replies are listed 'Best First'.
Re^4: Pesky warnings after calling Win32 API
by Biff (Acolyte) on Sep 21, 2004 at 19:15 UTC
    WICKED COOL!! You sir are a steely-eyed missle man!

    (or woman <sheepish grin> can't tell from your handle :-)

    Either way ikegami, I am much in your debt.

    Would you say that this is a bug in Struct.pm? Or at least a needed addition to the documentation?

    ...by the way did I say thanks? :-)

      Your welcome. I'd say it's more a bug in the documentation of Struct.pm than in Struct.pm itself, although it's definitely a failing that fields that don't need to be initialized aren't -w friendly. It would be so easy for everything to be set to 0 by default or to silently treat undef as 0.