Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^4: pp macOS external file

by IB2017 (Pilgrim)
on Apr 20, 2018 at 14:03 UTC ( [id://1213250]=note: print w/replies, xml ) Need Help??


in reply to Re^3: pp macOS external file
in thread pp macOS external file

I am a bit confused. The .png file is in the same directory as the executable (I can not have absolute paths, but only relative ones). So, the path for this icon should already be correct (and from the Terminal it works okay). How should the relative path differ in the executable? the OS is darwin.

Added: the problem should be that the executable sees the relative path starting from its "internal" (I do not how to call it) position that a simple:

use File::Basename; my $dirname= dirname(__FILE__);

inside my original script reveals to be different than the physical position of the executable on the machine.

Replies are listed 'Best First'.
Re^5: pp macOS external file
by marto (Cardinal) on Apr 20, 2018 at 14:23 UTC

    "So, the path for this icon should already be correct (and from the Terminal it works okay"

    Not when you run it. What follows is a sort of high level explanation of how this works. An executable generated by pp is essentially a self extracting/executing zip file. You can use the normal unzip command to extract it. The first time it executes it gets extracted to a temporary area. For your problem I had:

    marto@Shemp:~/perlmonks/pp$ ls myicon.png tk.pl

    When packed (as above) and executed this gets extracted to a temporary area, in this case: /tmp/par-6d6172746f/cache-b3da3d80145db3849552916091b87f92bea49883

    In the work around above this is accessible via $ENV{PAR_TEMP}. Within this directory you'll find the various bits & bobs, modules, libraries and so on that are required to run your code without needing perl (and all of those other things) installed.

    Within this is a directory inc:

    drwxr-xr-x 4 marto marto 4096 Apr 20 13:02 . drwx------ 3 marto marto 4096 Apr 20 13:02 .. drwxr-xr-x 16 marto marto 4096 Apr 20 13:02 lib -rw-r--r-- 1 marto marto 7189 Apr 20 13:02 MANIFEST -rw-r--r-- 1 marto marto 212 Apr 20 13:02 META.yml -rw-rw-r-- 1 marto marto 13052 Apr 20 13:02 myicon.png drwxr-xr-x 2 marto marto 4096 Apr 20 13:02 script

    here we see myicon.png. the actual script is in the sub directory 'script'. Another method I've seen people use is to embed the images within their code, and use the Tk::Photo -data option (rather than -file).

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1213250]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2025-06-25 05:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.