I'm trying to understand Win32API::File with the hopes of eventually doing locking on a text file in Windows Server 2008. My first test of some example code gives an error that makes me think createFile() is returning a scalar instead of a Win32 native file handle.
use strict;
use warnings;
use Data::Dumper;
use Win32API::File 0.08 qw( :ALL );
my $hObject = createFile( "test.xml", 'rw k e' );
unless ( $hObject ) {
die "error creating handle: $^E\n";
}
print Dumper( $hObject);
tie my $FILE, 'Win32API::File', $hObject; ###line 13
print $FILE "test";
print "finished\n";
__DATA__
output:
Can't locate method Win32API::File::TIESCALAR via package Win32API::Fi
+le at D:\Users\\testlock\t1.pl line 13
$VAR1 = 92;
According to the documentation for createFile "... $hObject gets set to a Win32 native file handle ..."
The example code has a comment that says "It also supports tying via a win32 handle (for example, from createFile()):"
My question is what am I doing wrong here? I'm using ActiveState perl 5.16 and the Win32API::File module is version 0.1201.