in reply to Re^2: Using Tk inside a Perl exe
in thread Using Tk inside a Perl exe

Thanks. Looking at findINC it'll search @INC for a file. If icon.png is in the same directory as example.pl, example.pl fails to execute with the same error. I'm not a Tk expert, there are many nodes here from people with much more experience (Super Search, DuckDuckGo etc..)

However, you're specifically adding this file to resources/icon.png, either altering your code to Tk::findINC('resources/icon.png') and packaging the way you did will work, e.g.

The fils is located here: /tmp/par-6d6172746f/cache-535ec6de1b4efb148a +c99123aadeb8c4f902fa64/inc/resources/icon.png

Or just don't package that way:

marto@Shemp:~/tkpp$ ls icon.png tk.pl marto@Shemp:~/tkpp$ pp -a "icon.png;icon.png" -o tk tk.pl marto@Shemp:~/tkpp$ ./tk The fils is located here: /tmp/par-6d6172746f/cache-df7f1b303bbe076aaf +1a97c9630e6d50e56371c6/inc/icon.png

I've posted an example in the past showing how to determine if the code is being run via a script of a PAR packaged executable, let me know if you can't find this, should you go looking.

Lastly, I don't know what you want to do with the png file, perhaps there's a better more portable way to achieve that.

Replies are listed 'Best First'.
Re^4: Using Tk inside a Perl exe
by afoken (Chancellor) on Nov 17, 2018 at 13:04 UTC
    Thanks. Looking at findINC it'll search @INC for a file. If icon.png is in the same directory as example.pl, example.pl fails to execute with the same error. I'm not a Tk expert [...]

    Modern perls (since v5.26.0) no longer include '.' in @INC, so findINC no longer searches there.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
Re^4: Using Tk inside a Perl exe
by Garden Dwarf (Beadle) on Nov 19, 2018 at 10:44 UTC
    Using the path resources/icon.png instead of just icon.png is working. Thanks a lot! :)

      As I say, I think it's likely that there's a better way to achieve what you want to do, more portable in so much that it'd work as a standalone script and packaged version. Some details or a small example of how you want to use the icon.png would likely be sufficient for someone in the know to point you in the right direction.

        I've build a small application using Tk::Zinc and Tk routines. I need resources to display buttons a user can click on (those are the PNGs). I found Tk:Zinc more easy to control the display, and it also supports acceleration from graphic cards if available. Tk::Zinc:Graphics is calling Tk::findINC, and from there was coming my issue.