#! perl -slw use strict; use Win32API::File 0.08 ':ALL'; use Win32::API; my $GetFileSize = Win32::API->new( 'Kernel32.dll', 'GetFileSize', 'NN', 'N' ) or die "Win32::API->new: $!, $^E"; open my $FH, '<', $ARGV[0] or die "Couldn't open $ARGV[0]: $!"; my $nativeFH = GetOsFHandle( $FH ) or die "GetOsFHandle: $^E"; my $OSSize = $GetFileSize->Call( $nativeFH, 0 ); die "GetFileSize error:$^E" if $OSSize == 0xFFFFFFFF; # See msdn docs. print "$ARGV[0]: $OSSize";