my $arg = shift; my $len = -s $arg; open my $file, '<', $arg; binmode $file; read $file, my $buf, $len; close $file; open my $mem_file, '<', \$buf; binmode $mem_file; .....do stuff.... #### open error: Invalid argument at C:/Perl/site/lib/MCE/Shared/Server.pm line 1035 thread 1, <__ANONIO__> line 6. MCE::Shared::Server::__ANON__() called at C:/Perl/site/lib/MCE/Shared/Server.pm line 1324 thread 1 MCE::Shared::Server::_loop(0, 6624) called at C:/Perl/site/lib/MCE/Shared/Server.pm line 335 thread 1 eval {...} called at C:/Perl/site/lib/MCE/Shared/Server.pm line 335 thread 1 #### stat_check($mem_file); sub stat_check{ my ($mem_file) = @_; my $fh = MCE::Shared->handle( "<:raw", \$mem_file ); ....rest of threaded function... } #### Not a GLOB reference at C:/Perl/site/lib/MCE/Shared/Server.pm line 2036, <__ANONIO__> line 3. #### stat_check($mem_file); sub stat_check{ my ($mem_file) = @_; my $fh = MCE::Shared->handle( "<:raw", $mem_file ); ....rest of threaded function... } #### open error: Invalid argument at C:/Perl/site/lib/MCE/Shared/Server.pm line 1035 thread 1, <__ANONIO__> line 6. MCE::Shared::Server::__ANON__() called at C:/Perl/site/lib/MCE/Shared/Server.pm line 1324 thread 1 MCE::Shared::Server::_loop(0, 3232) called at C:/Perl/site/lib/MCE/Shared/Server.pm line 335 thread 1 eval {...} called at C:/Perl/site/lib/MCE/Shared/Server.pm line 335 thread 1