Nella mia app, ho inserito tutti i moduli in una directory, chiamiamolo semplicemente libx
. Dato che spetta all'utente scegliere dove distribuire l'app, non voglio hardcriptare il percorso lib
.Perché "lib lib" non ha effetto in questo modo?
Quindi all'inizio di myapp.pl
, ho scritto le seguenti righe di codice.
#! /usr/bin/perl -w
use strict;
my $curr_dir = $0;
my $curr_lib = $curr_dir;
$curr_lib =~ s/myapp\.pl/libx/;
use $curr_lib ;
Invece di ottenere quello che mi aspetto, ho ottenuto errori di compilazione!
Quindi cosa c'è di sbagliato nel mio codice? Non voglio hardcode il percorso di lib quando si utilizza use lib
, come devo fare questo?
Scusa se ho dimenticato di dire che quando l'applicazione viene distribuita, myapp.pl
e libx
sono nella stessa directory.
Sarebbe utile se ci dicesse esattamente come pensi che il tuo utente possa avviare l'app. Scriveranno semplicemente "myapp".pl ', e sta a loro avere $ PATH set in modo che myapp.pl possa essere trovato in qualunque directory lo abbiano bloccato? –