The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

use Win32::API;

Win32::API::Struct->typedef( POINT => qw(
	LONG x;
	LONG y;
) );

Win32::API->Import( 'user32' => 'BOOL GetCursorPos(LPPOINT pt)' );

#### using OO semantics
my $pt = Win32::API::Struct->new( 'POINT' );
GetCursorPos($pt) or die "GetCursorPos failed: $^E";
print "Cursor is at: $pt->{x}, $pt->{y}\n";

#### using tie semantics
my %pt;
tie %pt, Win32::API::Struct => 'POINT';
GetCursorPos(\%pt) or die "GetCursorPos failed: $^E";
print "Cursor is at: $pt{x}, $pt{y}\n";