Schrift
[thread]12929[/thread]

Problem beim Schreiben in eine Datei



<< >> 3 Einträge, 1 Seite
trequ
 2008-12-23 10:47
#117397 #117397
User since
2008-07-30
7 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich verzweifel hier grad an etwas warscheinlich ganz einfachem:

Code (perl): (dl )
1
2
print $class->{'log_handle'}.' -> '.$log_text."\n";
print STDLOG $log_text."\n";

Funktioniert.
Ausgabe:
STDLOG -> Test-Text der in das Logfile geschrieben wird
Der Text wird korrekt geschieben.


Ändere ich das schreiben in das Logfile in
Code (perl): (dl )
print $class->{'log_handle'} $log_text."\n";

läuft das ganze auf super langen Syntax Error:
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
Subroutine move redefined at module_logfile.pm line 73 (#1)
(W redefine) You redefined a subroutine. To suppress this warning, say

{
no warnings 'redefine';
eval "sub name { ... }";
}

Scalar found where operator expected at module_logfile.pm line 126, near "}
$log_text" (#2)
(S syntax) The Perl lexer knows whether to expect a term or an operator.
If it sees what it knows to be a term when it was expecting to see an
operator, it gives you this warning. Usually it indicates that an
operator or delimiter was omitted, such as a semicolon.

(Missing operator before $log_text?)
syntax error at module_logfile.pm line 126, near "} $log_text"
Compilation failed in require at ./test.pl line 16.
BEGIN failed--compilation aborted at ./test.pl line 16 (#3)
(F) Probably means you had a syntax error. Common reasons include:

A keyword is misspelled.
A semicolon is missing.
A comma is missing.
An opening or closing parenthesis is missing.
An opening or closing brace is missing.
A closing quote is missing.

Often there will be another error message associated with the syntax
error giving more information. (Sometimes it helps to turn on -w.)
The error message itself often tells you where it was in the line when
it decided to give up. Sometimes the actual error is several tokens
before this, because Perl is good at understanding random input.
Occasionally the line number may be misleading, and once in a blue moon
the only way to figure out what's triggering the error is to call
perl -c repeatedly, chopping away half the program each time to see
if the error went away. Sort of the cybernetic version of S<20
questions>.

Uncaught exception from user code:
syntax error at module_logfile.pm line 126, near "} $log_text"


Woher kommt das?
Linuxer
 2008-12-23 11:11
#117398 #117398
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Siehe perldoc -f print

Quote
...
Note that if you're storing FILEHANDLEs in an array, or if you're using any other expression more complex than a scalar variable to retrieve it, you will have to use a block returning the filehandle value instead ...
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!
trequ
 2008-12-23 11:21
#117399 #117399
User since
2008-07-30
7 Artikel
BenutzerIn
[default_avatar]
Ok, danke dir.

Code (perl): (dl )
print {$class->{'log_handle'}} "Text\n"; 

geht jetzt ;)

Den Satz hatte ich sogar gelesen, aber irgendwie verplant... :/
<< >> 3 Einträge, 1 Seite



View all threads created 2008-12-23 10:47.