Schrift
[thread]9142[/thread]

eigener name ausgeben



<< >> 7 Einträge, 1 Seite
Gast Gast
 2007-06-30 13:51
#78074 #78074
hi,
ich möchte das das script seinen eigenen namen ausgiebt...
z.b. das script heißt test.pl dann soll er mit test.pl ausgeben

wie mach ich das am besten?
PerlProfi
 2007-06-30 13:59
#78075 #78075
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
rtfm!
print $0;
renee
 2007-06-30 16:47
#78076 #78076
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Da $0 den ganzen Pfad liefert (jedenfalls unter Win32), musst Du noch mit CPAN:File::Basename den Pfad entfernen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Duff
 2007-06-30 16:53
#78077 #78077
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Zu Windows kann ich nichts sagen, aber unter linux funktioniert es mit $0.

Code: (dl )
1
2
3
4
5
6
7
8
daniel@daniel-laptop:/tmp$ perl test.pl 
test.pl
daniel@daniel-laptop:/tmp$ cat test.pl
#!/usr/bin/perl -w
use strict;

print "$0\n";
daniel@daniel-laptop:/tmp$
D'OH
Daniel
renee
 2007-06-30 17:11
#78078 #78078
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Unter Win32:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
C:\Perl\community>file.pl
$0: C:\Perl\community\file.pl
C:\Perl\community>more file.pl
#!/usr/bin/perl

use strict;
use warnings;

print '$0: ' , $0;

C:\Perl\community>
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
murphy
 2007-06-30 18:20
#78079 #78079
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
[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 CPAN:FindBin verwenden anstatt direkt auf $0 zuzugreifen.

edit: Um noch ein Beispiel hinzuzufügen:
Code: (dl )
1
2
3
4
5
6
7
8
#!/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.
renee
 2007-06-30 19:26
#78080 #78080
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
In 99% der Fälle könnte man auch mit __FILE__ was anfangen können (+ CPAN:File::Basename) - nur um mal wieder TIMTOWTDI aufleben zu lassen ;)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 7 Einträge, 1 Seite



View all threads created 2007-06-30 13:51.