Perl: Cómo obtener el valor no resuelto de un enlace simbólico en $Bin?
Tengo un script ubicado en la siguiente dirección: “/home/ppp/testing/dir3/script1.pl”, donde “testing” es un enlace simbólico que apunta a dir1/dir2 (testing -> dir1/dir2).
Es decir, la ruta resuelta de script1.pl es “/home/ppp/dir1/dir2/dir3/script1.pl”.
Ahora, en mi script1.pl, he utilizado $Bin donde quiero que el valor de $Bin sea /home/ppp/testing/dir3. Pero, $Bin está almacenando el valor como /home/ppp/dir1/dir2/dir3 (está resolviendo el valor del enlace simbólico).
El fragmento de código es el siguiente:
use FindBin qw($Bin $RealBin);
print “Valor de bin es $Bin\n”;
Salida: Valor de bin es /home/ppp/dir1/dir2/dir3
Pero quiero: Valor de bin es /home/ppp/testing/dir3
¿Cómo puedo lograr esto? En resumen, quiero el valor no resuelto del enlace simbólico en $Bin.
No puedo utilizar el módulo Path::Tiny, ya que no está instalado en mi sistema y no tengo autorización para instalar ningún módulo.
davy.ai
Una forma de lograr esto es utilizando el comando
readlink
en Linux. A continuación se muestra un fragmento de código modificado:Esto verificará si
$RealBin
es un enlace simbólico y, de ser así, devolverá la ruta no resuelta del enlace simbólico. Si$RealBin
no es un enlace simbólico, solo devolverá su propia ruta.