note
Skeeve
<p>
Thanks for asking, Dave.
</p>
<p>
The issue here is, that my script is not running in the directory where the target is. Currently the linking looks something like this
</p>
<pre>
my $newname="/home/script/data/archive/currentfile";
my $targetfile="/home/script/data/archive/infofile-2019-12-16";
symlink $targetfile, $newname;
</pre>
<p>
In order for the link to become relative I think I will have to do a chdir to the directory of <code>$newname</code> and make the path of <code>$targetfile</code> be relative to that.
</p>
<p>
As both are in my case, in the same directory, the relative-path part is easy, but would it be different directories, it would be a bit more complicated.
</p>
<p>
As the script is not running in the <code>/home/script/data/archive</code> directory, I think for <code>symlink</code> to create a working relative link, I need to do a <code>chdir</code> first. But then I need to change directory back as well.
</p>
<p>
As the <code>ln</code> command has a "make a relative link" option, I thought there might be something available in perl as well. So in order not to reinvent the wheel, I'm asking…
</p>
<!-- Node text goes above. Div tags should contain sig only -->
<div class="pmsig"><div class="pmsig-253915">
<hr><code>s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%</code>
<br><font color="red"><code>+</code></font><code>.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e</code>
</div></div>
11110217
11110222