Schrift
[thread]364[/thread]

Undifined value as a symbol reference



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Gast Gast
 2004-08-19 18:08
#3505 #3505
Hallo Leutz,

hab wiederum folgendes Problem:

Code: (dl )
1
2
3
4
5
6
7
8
9
1:#!/usr/local/bin/perl5.8.0 -w
2:#
3:use FileHandle;
4:
5:my $content="Hallo dies ist ein Test";
6:local $fd;
7:$fd = new FileHandle("test.txt");
8:print $fd "\n------------------------\n$content";
9:$fd->close();


Dies is nur ein Testscript, jedoch ist im richtigen script sowas ähnliches...ich habe folgendes problem:

Code: (dl )
Can't use an undefined value as a symbol reference at test_filehand.pl line 8


Davor hatte ich mich informiert und mir sagt jmd ich solle das $fd von my auf local stellen jedoch bekomme ich immer noch die gleiche fehlermeldung.

hat jmd zu diesem verhalten eine lösung?

greetz
anty
[E|B]
 2004-08-19 18:17
#3506 #3506
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Zeile 8 brauchst ein Komma, falls es das so machen soll, wie du willst:

Code: (dl )
print $fd, "\n------------------------\n$content";


Das ist auf jeden Fall unzulässig:

Code: (dl )
print $fd "\n------------------------\n$content";


Schau außerdem, dass $fd auch wirklich nicht undefined ist.\n\n

<!--EDIT|[E|B]|1092925086-->
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Ishka
 2004-08-19 18:47
#3507 #3507
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
print $fd "\n------------------------\n$content"; ist schon richtig, wenn in $fd ein Filehandle ist.

hast du Lesezugriff auf new FileHandle("test.txt"); ?

wieso verwendest du use FileHandle; und nicht open?

bau mal use strict; und use warnings; ein, das hilft schonmal viele Fehler entdeken.

und wenn das wirklich CGI sein soll, fehlt ein print "Content-Type: text/html\n\n"; wenn nicht, dann ist das das falsche forum, dann verschieb ichs nachher.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Anthy
 2004-08-19 18:50
#3508 #3508
User since
2004-08-12
11 Artikel
BenutzerIn
[default_avatar]
hu danke für die schnelle antwort aber nun bekomme ich dieses problem :/

Code: (dl )
1
2
3
4
Use of uninitialized value in print at test_filehand.pl line 8.

--------------------
Can't call method "close" on an undefined value at test_filehand.pl line 9.


greetz
Ishka
 2004-08-19 18:54
#3509 #3509
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
oh, dein -w hatte ich nicht gesehen - empfehle ich dir trotzdem use warnings statt -w, ist besser

edit: und ich glaube, daß du meinen Beitrag nch nciht gesehen hast ;)\n\n

<!--EDIT|Ishka|1092927320-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Anthy
 2004-08-19 19:02
#3510 #3510
User since
2004-08-12
11 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/local/bin/perl5.8.0 -w
#
use FileHandle;
use strict;

my $content="Hallo dies ist ein Test";
my $fd;
$fd = new FileHandle("test.txt");
print $fd, "\n------------------------\n$content";
$fd->close();


das is schon ein cgi ich hab ja gesagt hab hier nur eine kurzvariante gemacht, denn wenn ich die gefixed bekomme bekomme ich das andere auch gefixed.

also aufjedenfall kommt immer noch
Code: (dl )
1
2
3
4
5
Use of uninitialized value in print at test_filehand.pl line 8.

--------------------
Can't call method "close" on an undefined value at test_filehand.pl line 9.
Hallo dies ist ein Test


das problem ist wohl, dass ich es hier bei mir auf windows hab laufen und hier funktioniert es, jedoch bekomme ich auf dem unix server wo das programm laufen soll ein fehler.
mir ist das unerklärlich und habe auch schon einiges versucht aber mir is unklar warum er das nicht versteht.\n\n

<!--EDIT|Anthy|1092927767-->
dus-web
 2004-08-19 19:44
#3511 #3511
User since
2004-02-13
25 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Anthy,19.08.2004, 17:02]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/local/bin/perl5.8.0 -w
#
use FileHandle;
use strict;

my $content="Hallo dies ist ein Test";
my $fd;
$fd = new FileHandle("test.txt");
print $fd, "\n------------------------\n$content";
$fd->close();


das is schon ein cgi ich hab ja gesagt hab hier nur eine kurzvariante gemacht, denn wenn ich die gefixed bekomme bekomme ich das andere auch gefixed.

also aufjedenfall kommt immer noch
Code: (dl )
1
2
3
4
5
Use of uninitialized value in print at test_filehand.pl line 8.

--------------------
Can't call method "close" on an undefined value at test_filehand.pl line 9.
Hallo dies ist ein Test


das problem ist wohl, dass ich es hier bei mir auf windows hab laufen und hier funktioniert es, jedoch bekomme ich auf dem unix server wo das programm laufen soll ein fehler.
mir ist das unerklärlich und habe auch schon einiges versucht aber mir is unklar warum er das nicht versteht.[/quote]
Probier doch mal das:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/local/bin/perl5.8.0 -w
#
use FileHandle;
use strict;

my $content="Hallo dies ist ein Test";

[B]my $fd = new FileHandle("test.txt");[/B]

print $fd "\n------------------------\n$content";
$fd->close();


Und bist du dir Sicher das die Syntax "new FileHandle..." so stimmt? probier mal Backtricks (')

Gruß,

Daniel
ptk
 2004-08-19 19:55
#3512 #3512
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn du auf eine Datei schreiben willst, musst du:
Code: (dl )
my $fd = new FileHandle(">test.txt");

verwenden.
Strat
 2004-08-19 22:26
#3513 #3513
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
1. immer fehler abfangen, wenn irgendwo welche entstehen koennen (das duerfte der fehler sein)
2. der tip mit local ist schrott; da besser my verwenden
Code: (dl )
1
2
3
4
5
6
7
8
9
use FileHandle;
my $fh = FileHandle->new("> $file");
unless ($fh) {
 die "Error: couldn't create '$file': $!\n";
}
else {
 print $fh "irgendwas\n";
 $fh->close();
} # else
\n\n

<!--EDIT|Strat|1092940026-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Anthy
 2004-08-20 11:05
#3514 #3514
User since
2004-08-12
11 Artikel
BenutzerIn
[default_avatar]
vielen dank leutz...echt super die hilfsbereitschaft :) werd das nun in mein programm einbauen und gib bescheid wenn alles funktioniert!

greetz
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2004-08-19 18:08.