Win32::AdminMisc has some of the stuff you'll need.
Use the GetMemoryInfo. It returns a hash with the following info.
Load Percentage load on the available memory
RAMTotal Total amount of bytes of physical RAM
RAMAvail Total amount of bytes of available physical memory
PageTotal Total amount of paged ram
PageAvail Total amount of available paged ram
VirtTotal Total amount of virtual memory
VirtAvail Total amount of available virtual memory