in reply to Filehandle open fails in script packed with PAR::Packer

it crashes at an open command.

What does that mean exactly? Did eventviewer have something to say about it?

What PAR command did you use to pack the script? Did you use "pp -x ..."?

P.s. it creates a random folder on c:/, it was the first location that came to mind.

Change your mind :)

use File::Temp();
my $tempfh = File::Temp->new;
binmode $tempfh;
print $tempfh ...;
close $tempfh;

  • Comment on Re: Filehandle open fails in script packed with PAR::Packer

Replies are listed 'Best First'.
Re^2: Filehandle open fails in script packed with PAR::Packer
by elef (Friar) on Jan 14, 2014 at 21:16 UTC
    Yes, I did use -x.
    I get a standard Windows error window stating that the .exe stopped working.
    Details according to Windows:
    Problem Event Name: APPCRASH Application Name: openfile_test.exe Application Version: 0.0.0.0 Application Timestamp: 4fba3b5e Fault Module Name: perl514.dll Fault Module Version: 5.14.2.1402 Fault Module Timestamp: 4e8f870c Exception Code: c0000005 Exception Offset: 000ad1bf OS Version: 6.1.7601.2.1.0.256.48 Locale ID: 1038 Additional Information 1: 0a9e Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 Additional Information 3: 0a9e Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
        It spat out 3000 lines of stuff. I can't make much sense of it except for the last line: "Exited "OPENFILE_TEST.EXE" (process 0x18AC) with code -1073741819 (0xC0000005)." This is the same error code I posted above (access violation).
        I should note that if I move the open out of the sub, it works. Like so:
        # BITS OF CODE CHOPPED OFF my $buttbrowse = $bin_win -> Button(-text=>"Browse", -command => sub { +filepicker}) -> pack(-pady => 20); open (OUT, ">:encoding(UTF-8)", "c:/test/filepath.txt") or print "Can' +t open file: $!"; # this fails when the script is packed into an e +xe with PAR::Packer print OUT "File path: how would I know if I get printed before the sub + runs?"; close OUT; MainLoop;
        Of course this doesn't fix the problem because the variable I want to print to the file is filled in by the sub. But it does indicate something about the error perhaps. I would like to know if this error occurs for other people. I'd think not.