[quote=Duff,30.06.2007, 14:53]Zu Windows kann ich nichts sagen, aber unter linux funktioniert es mit $0.
[...][/quote]
Unter Unices steht in
$0 genau das, was als erstes Argument an den Perlinterpreter oder als nulltes Argument an das Skript selber übergeben wurde. Es kann also durchaus sein, dass in
$0 ein beliebig komplizierter Pfad mit enthalten ist. Es ist auch möglich, dass
$0 gar nicht den wahren Namen des Skriptes enthält, sondern den irgendeines symbolischen Links. Ich denke, in vielen Fällen sollte man lieber
FindBin verwenden anstatt direkt auf
$0 zuzugreifen.
edit: Um noch ein Beispiel hinzuzufügen:
#!/usr/bin/perl
use strict;
use warnings;
use FindBin qw/$Script/;
print "Hello, my basename is $Script\n";
Allerdings löst auch FindBin keine symbolischen Links auf. FindBin::Real tut das aber, glaube ich.\n\n
<!--EDIT|murphy|1183213892-->
When C++ is your hammer, every problem looks like your thumb.