Schrift
[thread]10481[/thread]

perl liefert keine ausgabe!?

Leser: 2


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Gast Gast
 2007-09-27 20:26
#100079 #100079
Hallo zusammen,

ich habe auf meiner NAS BusyBox 1.1.0 (ein Minilinux) laufen und habe per ipkg perl und mittlerweile microperl (unter "/volume1/opt") installiert.

Nach der Installation habe ich per:
"ln -s /volume1/opt /opt"
einen Alias erstellt und mittels:
"export PATH=/opt/bin:/opt/sbin:$PATH"
den Pfad der Pfad-Variable hinzugefügt.

Der Befehl:
"which perl"
gibt mir "/opt/bin/perl" aus und
"perl -v"
auch die korrekten Informationen ("This is perl, v5.8.8 built for powerpc-603e-linux...")

Soweit so gut! Wenn ich nun aber mein perlskript auf der Konsole mittels "perltest2.pl"ausführen will, erscheint die Meldung "-ash: perltest2.pl: not found
", mittels "perl perltest2.pl" erscheint gar keine Ausgabe
("DiskStation> perl perltest2.pl
DiskStation> ")
und im Browser erscheint nur der Quelltext!?

Der Quelltext meines Perlskripts:
"#!/opt/bin/perl -w

print("Just another Perl hacker\n");"

Ich hoffe Ihr könnt mir bei meinem Problem helfen!

Vielen Dank im Vorraus!
Effeksys
ptk
 2007-09-27 23:21
#100082 #100082
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Kann man mit microperl überhaupt "print" machen?
ptk
 2007-09-27 23:29
#100083 #100083
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man kann, gerade mit dem microperl aus perl5.10.0 ausprobiert.

Hast du vielleicht strace zur Verfügung? Kannst du damit schauen, ob überhaupt der Versuch einer Ausgabe gemacht wird?
Linuxer
 2007-09-27 23:46
#100084 #100084
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Gast+2007-09-27 18:26:40--
Soweit so gut! Wenn ich nun aber mein perlskript auf der Konsole mittels "perltest2.pl"ausführen will, erscheint die Meldung "-ash: perltest2.pl: not found
", mittels "perl perltest2.pl" erscheint gar keine Ausgabe
("DiskStation> perl perltest2.pl
DiskStation> ")
und im Browser erscheint nur der Quelltext!?


Hi,

wenn Du im richtigen Verzeichnis stehst (da, wo das Skript auch liegt) und "skriptname.pl" nicht funktioniert, dann ist das aktuelle Verzeichnis (.) nicht im Pfad (und das ist auch gar nicht mal so schlecht)...

Versuche mal das Skript so aufzurufen: ./skriptname.pl

Interessant wäre auch, ob Du das Skript ausführbar gemacht hast, denn wenn nicht, dann dürfte der Aufruf auch als ./skriptname.pl nicht klappen...

Btw, ein "ln -s $what $ever" legt keinen Alias an, sondern einen symbolischen Link (Symbolic link) das sind 2 verschiedene Dinge!
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Gast Gast
 2007-09-27 23:48
#100085 #100085
Hi,

microperl müsste ich doch mit "#!/opt/bin/microperl -w" statt:
Der Quelltext meines Perlskripts:
"#!/opt/bin/perl -w

aufrufen.

strace habe ich eben installiert. Kannst du mir vllt. sagen welchen Befehl ich genau ausführen muss.

Dankeschö,
Effeksys
Gast Gast
 2007-09-27 23:59
#100086 #100086
Hi,


Code: (dl )
1
2
DiskStation> ./perltest2.pl
DiskStation>

bringt leider auch nichts. ;-(

Code: (dl )
...dann ist das aktuelle Verzeichnis (.) nicht im Pfad (und das ist auch gar nicht mal so schlecht)...

Meinst du mit Pfad = $PATH
Die Datei liegt eigentlich in dem Pfad in welchen ich mich befinde, siehe:

Code: (dl )
1
2
DiskStation> pwd
/volume1/web

Und die Berechtigungen müssten doch eigentlich auch stimmen, oder?

Code: (dl )
1
2
3
4
5
6
7
8
DiskStation> ls -lisa
...
9322497 4 drwxrwxrwx 11 Thomas users 4096 Sep 18 23:46 Twiki
30015529 8 -rw-r--r-- 1 root root 7523 Sep 27 19:00 err.txt
30015530 24 -rw-r--r-- 1 root root 22246 Sep 27 19:00 log.txt
30015533 4 -rwxrwxrwx 1 Thomas users 1152 Sep 27 15:19 perltest.pl
30015526 4 -rwxrwxrwx 1 Thomas users 56 Sep 27 16:42 perltest2.pl
...


Ciao,
Effeksys
effeksys
 2007-09-28 02:47
#100090 #100090
User since
2007-09-28
1 Artikel
BenutzerIn
[default_avatar]
strace perl -w /volume1/web/cgi-bin/perltest2.pl spuckt mir folgendes aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 execve("/opt/bin/perl", ["/opt/bin/perl", "-w", "/volume1/web/cgi-bin/perltest2.p"...], [/* 10 vars */]) = 0
uname({sys="Linux", node="DiskStation", ...}) = 0
brk(0) = 0x10012560
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x30016000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/lib/libperl.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/opt/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/opt/lib/perl5/5.8.8/ppc-linux/CORE/libperl.so", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\t\200"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1536312, ...}) = 0
mmap(0xfe66000, 1612044, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfe66000
mprotect(0xffd5000, 108812, PROT_NONE) = 0
mmap(0xffd6000, 94208, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x160000) = 0xffd6000
mmap(0xffed000, 10508, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffed000
close(3) = 0
open("/opt/lib/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/lib/perl5/5.8.8/ppc-linux/CORE/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=10536, ...}) = 0
mmap(NULL, 10536, PROT_READ, MAP_PRIVATE, 3, 0) = 0x30017000
close(3) = 0
open("/lib/libnsl.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0A\320"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=78532, ...}) = 0
mmap(0xfe30000, 152108, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfe30000
mprotect(0xfe42000, 78380, PROT_NONE) = 0
mmap(0xfe50000, 12288, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x10000) = 0xfe50000
mmap(0xfe53000, 8748, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xfe53000
close(3) = 0
open("/opt/lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/lib/perl5/5.8.8/ppc-linux/CORE/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0 8"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=11524, ...}) = 0
mmap(0xfe0d000, 75832, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfe0d000
mprotect(0xfe10000, 63544, PROT_NONE) = 0
mmap(0xfe1d000, 12288, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xfe1d000
close(3) = 0
open("/opt/lib/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/lib/perl5/5.8.8/ppc-linux/CORE/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0\242"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=487776, ...}) = 0
mmap(0xfd77000, 547412, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfd77000
mprotect(0xfdeb000, 72276, PROT_NONE) = 0
mmap(0xfdf7000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x70000) = 0xfdf7000
close(3) = 0
open("/opt/lib/libcrypt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/lib/perl5/5.8.8/ppc-linux/CORE/libcrypt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libcrypt.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0\f"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=21380, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3001a000
mmap(0xfd2b000, 245516, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfd2b000
mprotect(0xfd30000, 225036, PROT_NONE) = 0
mmap(0xfd3b000, 20480, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xfd3b000
mmap(0xfd40000, 159500, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xfd40000
close(3) = 0
open("/opt/lib/libutil.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0\16"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=8616, ...}) = 0
mmap(0xfd09000, 73320, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfd09000
mprotect(0xfd0b000, 65128, PROT_NONE) = 0
mmap(0xfd19000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xfd19000
close(3) = 0
open("/opt/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/lib/perl5/5.8.8/ppc-linux/CORE/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1\324"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1310504, ...}) = 0
mmap(0xfbac000, 1361912, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xfbac000
mprotect(0xfcdd000, 112632, PROT_NONE) = 0
mmap(0xfcec000, 40960, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x130000) = 0xfcec000
mmap(0xfcf6000, 10232, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xfcf6000
close(3) = 0
mprotect(0xfe66000, 1503232, PROT_READ|PROT_WRITE) = 0
mprotect(0xfe66000, 1503232, PROT_READ|PROT_EXEC) = 0
munmap(0x30017000, 10536) = 0
rt_sigaction(SIGFPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
brk(0) = 0x10012560
brk(0x10033560) = 0x10033560
brk(0) = 0x10033560
brk(0x10034000) = 0x10034000
getuid() = 0
geteuid() = 0
getgid() = 0
getegid() = 0
open("/dev/urandom", O_RDONLY) = 3
read(3, "\f6\35s", 4) = 4
close(3) = 0
time([1190932603]) = 1190932603
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
lseek(0, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
lseek(1, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
lseek(2, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
open("/volume1/web/cgi-bin/perltest2.pl", O_RDONLY) = 3
ioctl(3, TCGETS, 0x7ffff810) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
readlink("/proc/self/exe", "/volume1/opt/bin/perl5.8.8", 4095) = 26
getpid() = 10426
read(3, "#!/opt/bin/perl -w\r\rprint(\"Just "..., 4096) = 56
read(3, "", 4096) = 0
close(3) = 0
exit(0) = ?
Process 10426 detached
ptk
 2007-09-28 03:09
#100094 #100094
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Code: (dl )
read(3, "#!/opt/bin/perl -w\r\rprint(\"Just "..., 4096) = 56

\r? Wie kommt das da rein? Versuch's mal mit "richtigen" newlines.
Gast Gast
 2007-09-28 13:27
#100104 #100104
Hi ptk,

meinst du mit "richtigen" newlines: "/n"?

Der Quelltext meines Perlskripts:
Code: (dl )
1
2
3
"#!/opt/bin/perl -w

print("Just another Perl hacker\n");"

"/r" ist doch ein Return, den habe ich aber nirgends aufgerufen.

Ciao,
Effeksys
pq
 2007-09-28 13:52
#100113 #100113
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Gast+2007-09-28 11:27:09--
meinst du mit "richtigen" newlines: "/n"?

nein, \n
Quote
"/r" ist doch ein Return, den habe ich aber nirgends aufgerufen.

/r ist kein return, sondern ein slash und ein r. du meinst \r

in der datei steht aber trotzdem am ende der zeile ein \r\n, das
ist das, was strace gezeigt hat. das kommt mit hoher wahrscheinlichkeit
daher, dass du das skript auf windows geschrieben hast und mit den
falschen ftp-optionen hochgeladen hast. du musst ascii anklicken.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2007-09-27 20:26.