[ Zoran Rašković @ 20.02.2001. 15:26 ] @
evo jednog primera .cgi

#!/usr/bin/perl
print "Content-type:text/htmlnn";

print <<end;
<html><head><title>Proba</title></head>
<body>
end

#primi podatke

=read(STDIN,.{CONTENT_LENGTH});

#otvori fajl

open (DATA,">>fajl.dat");

#upisi primljene podatke u fajl

print DATA ;

#zatvori fajl

close (DATA);

#zavrsi html kod

print "</body></html>"

-----------------------------------
e sad, problem je sto ovo upisivanje u fajl nekada radi a nekada ne, naime kad se source ovog fajla ne menja, onda ce samo jednom raditi i to je to.... Kada bih naprimer promenio tacku zarez negde i startovao i posle toga vratio tacku zarez , onda bi upisao u fajl

st je problem, da li je to mozda do kesha Netscapea ili st avec, ili mozda nesto ssvim drugo ?

[Ovu poruku je menjao Judge Dred dana 02-20-2001 u 06:27 AM GMT]

[Ovu poruku je menjao Bojan Basic dana 13.04.2004. u 16:21 GMT]
[ ventura @ 20.02.2001. 17:46 ] @
Rad sa fajlom je ok.. mada print ti ije dobar..

print <<end;
<html><head><title>Proba</title></head>
<body>
end



bi trebalo da izgleda ovako:

print "<html><head><title>Proba</title></head> <body>";


znaci isped svakog " ; / < > treba da ti stoji sto znaci da se sledeci karakter kvotuje...

[ ventura @ 20.02.2001. 17:50 ] @
isto sma video da si zaboravio ( na open DATA.. evo ti celi kod...



#!/usr/bin/perl
print "Content-type:text/htmlnn";
print "<html><head><title>Proba</title></head><body>";
=read(STDIN,.{CONTENT_LENGTH});
open (DATA,">>fajl.dat");
print DATA ;
close (DATA);
print "</body></html>";

[ Zoran Rašković @ 20.02.2001. 18:20 ] @
e ovaj smajli zajebava
[ Gojko Vujovic @ 20.02.2001. 18:23 ] @
Ventura pa to je ko u shell programmingu i zove se HERE DOCUMENT i pocinjes ga sa >>MARKER i zavrsavas sa linijom na kojoj je samo MARKER.

E sad ovaj njegov verovatno ne radi jer ima space posle onog end u trecoj liniji gde se zavrsava here document. A drugi problem je sto moras da dodas jedan semicolon -->;<-- , kao sto si i sam primetio i to na liniju posle end. A to end mora da ti je samo na liniji.

ovako:

Code:

print <<end
test
end
;


I treba ga koristiti jer mnogo olaksava, ne moras da escape-ujes sve html tagove i slicno. A druga mogucnost je da koristis:

Code:

print qq|
<html></html>
text text bla bla

...
|;



A sto se tice zagrade na open, ventura, ne treba ni to :)
Ovo ce takodje da radi, i bez tih zagrada:

Code:

open DATA, ">>test.txt";
print DATA text;
close DATA;
[ Gojko Vujovic @ 20.02.2001. 18:26 ] @
pa ugasi smajli imas tu opciju kad kucas poruku :)
[ Vojislav Milunovic @ 20.02.2001. 18:55 ] @
Jes majku mu stvarno kriva

Da ja koji nisam neki perlovac znam za ovo << to sam barem video u nekim kodovima i nekim textovima :o)
[ Zoran Rašković @ 20.02.2001. 18:58 ] @
ok probacu ovo pa cu vam reknem da li radi
[ ventura @ 21.02.2001. 00:38 ] @
koj ce mu q* << marker kada ce samo da pise na ekran ?
[ Gojko Vujovic @ 04.03.2001. 17:19 ] @
nevezano za ovu temu, primeticete da fali oko 5% poruka... sto je i dobro, zamalo da nista ne uspem da povratim.

ova diskusija je na primer dosta ostecena.. bilo je dosta rasprave posle ove venturine poruke
takodje sumljam da ce ijedan postovani source code raditi jer su zbog stare verzije php-a morali biti obrisani svi escapovani single quotes znaci da bih uopste mogao da uradim restore.. a neke poruke uopste nije htela da primi baza

mada bi sve bilo lepse da sam lepo imao shell pristup ali toga nije bilo, morao sam sve preko php-a

uglavnom da opet odgovorim venturi:

html ne treba uopste da se quotuje,
a mnogo je lepse koristiti << marker zbog preglednosti..