Gå til innhold

Fjerne kode fra innlegg i gjestebok


Anbefalte innlegg

Men er ikke det akkurat det samme som å gjøre:

 

open TMP, "tmp.txt";
my @lines_from_file = <TMP>;
close TMP;

 

?

 

Men ja, nå skjønner jeg ytelsesforskjellen :D

 

Men når man skal skrive til filer da?

 

PS: Likte du quote siden? (Både når det gjelder koding og utseende/funksjoner?) :)

 

Jon

Lenke til kommentar
Videoannonse
Annonse
Forskjellen på qq og q? Nei, kjente ikke til q jeg.. :p

5277757[/snapback]

 

qq{} er det samme som "" (dobbelfnutter)

q{} er det samme som '' (enkelfnutter)

 

skilletegnene {} kan byttes ut med dertil egnet annet tegn, f.eks // eller () eller ||

 

hovedforskjellen er at dobbelfnutter vil parse ut variabelnavn og andre "ting som betyr noe"

 

Prøv følgende kodesnutter:

 

$navn = "Truls";

 

print "Dobbelfnutter: Hei, jeg heter $navn<br>\n";

 

print 'Enkelfnutter: Hei, jeg heter $avn<br>\n';

 

 

hhv qq{} og q{} i eksemplene over ville gitt det samme.

 

I html har man ofte behov for å skrive ut html tags med attributter i "" og samtidig kunne sette inn variabelnavn. da er qq{} ok å bruke.

Lenke til kommentar
Men er ikke det akkurat det samme som å gjøre:

 

open TMP, "tmp.txt";
my @lines_from_file = <TMP>;
close TMP;

?

 

Jo, den gjør deg for deg om ikke annet. Samt at ved binære data kan man oppleve litt snodige eller uventede ting.

 

File::Slurp er sagt å være binary safe.

 

Men ja, nå skjønner jeg ytelsesforskjellen :D

 

Men når man skal skrive til filer da?

 

PS: Likte du quote siden? (Både når det gjelder koding og utseende/funksjoner?) :)

 

Jon

5277800[/snapback]

 

Hvis du leser på siden:

http://search.cpan.org/~uri/File-Slurp-999...b/File/Slurp.pm

 

så står det dokumentret hvordan du kan overskrive filer og hvordan du kan legge til data til filer!

 

Om jeg likte den?

 

Vel... jeg ville aldri brukt flatefiler for logging og ip matching og slikt, men bortsett fra det bruker du en del relativt avansert kode. f.eks local $/ i en blokk. (har du dette fra andre kanskje? ;) )

 

Litt småtteri:

print qq{$quotetoprint}; # her trenger du ikke qq{} operatoren

 

print $quoteprint; # er like bra.

Lenke til kommentar

Hva ville du brukt om ikke flatefiler? XML? Hvis jeg får se hvordan man kan bruke XML sammen med Perl/CGI så vil jeg jo selvfølgelig bruke det sammen med både quotes siden, og gjesteboksiden :)

 

local $/ hentet jeg originalt fra noe jeg fant da jeg spurte i et annet forum på nettet, men det å endre på $/ kunne jeg fra før :)

 

qq er nå endre på :)

 

EDIT: Så nå på "writing files with File::Slurp", ble for avansert for meg etter første linje hvor de begynner å inkludere ekstra parametere :p (det samme gjelder vel forsåvidt med read også ;))

Endret av Jonhoo
Lenke til kommentar

Jeg prøvde å bruke XML::Simple nå, men det virker som om det ikke er installert heller :( (Se http://jonhoo.web.surftown.nu/cgi-bin/gjestebok2)

 

Jeg legger ut koden på

http://jonhoo.web.surftown.nu/gjestebok2.txt

 

Gidder du å se om den er noenlunde riktig kodet? :)

 

PS: En liste over installerte tillegg til perl på mitt webhotell fant jeg her:

http://support.global.surftown.com/index.p...ndetails&_i=302

 

Har nettopp sendt dem en mail om å installere:

HTML::Template

XML::Simple

File::Slurp

 

Får se om de gjør noe med det :)

 

Jon

Endret av Jonhoo
Lenke til kommentar

Takk så mye :)

 

Håper surftown ser på mailen og gjør noe med det..

 

Har du mulighet til å teste ut scriptet jeg skrev på egen webserver av et eller annet slag?

 

Det er en mulig feil i koden, og det er at jeg har bedt den se under <post> taggen i XML filen for hvert nye innlegg, men når den skriver en ny XML fil så nevnes ikke <post> noe sted :S Vet du hvordan man kan få XML::Simple til å skrive en ny tag for hvert nye felt?

 

Jon

 

EDIT: Mulig jeg fikk fikset det ved å endre

push (@xmlarray, $newpost);

og

@xmlarray = [{'name'=>'$fields[0]', 'IP'=>'$fields[4]', 'epost'=>'$fields[1]', 'melding'=>'$fields[2]', 'tid'=>'$fields[3]'}]

til

push (@xmlarray->{post}, $newpost);

og

@xmlarray->{post} = [{'name'=>'$fields[0]', 'IP'=>'$fields[4]', 'epost'=>'$fields[1]', 'melding'=>'$fields[2]', 'tid'=>'$fields[3]'}]

Endret av Jonhoo
Lenke til kommentar

det store minuset med XML::Simple, er at denne hash strukturen fort blir uoversiktlig, har du kjennskap til Data::Dumper?

 

Den er et must!

 

use Data::Dumper;

print Dumper(\@xmlarray);

 

gjerne pakke output i <pre> tags hvis du gjør det via web!

 

Angåened webserver, har en webserver her ja... men jeg vil anbefale deg å sette opp en egen. Hvis du har liggende et gammelt PIII eller PII vrak, er et midt i blinken for å sette opp en lokal arbeidsserver (med egnet linuxdistribusjon)

Lenke til kommentar

Jeg har en gammel greie stående her ja, men den kjører så mye annet.... Etter jul får jeg muligens noen deler til overs så det blir vel en del oppgraderinger..

 

Har ikke kjennskap til Dumer fra før av nei.... Dessverre..

Hvordan sette opp webserver er jeg heller ikke god på, men den nye serveren vil nok antageligvis kjøre linux + diverse servere (FTP, ventrilo, mail)

Har du noe å anbefale på noen av punktene?

 

Det jeg lurte på med om du hadde webserver var om du kunne prøvekjøre scriptet på din server for å se om det funket..

 

 

Hva tror du om løsningen jeg skrev over på problemet med <post> tags.. Tror du det vil funke?

 

Jon

Lenke til kommentar

Jeg skal prøve skriptet ditt på min server imorgen.

 

Jeg har laget ferdig en enkel demo av guestbook script, kode her:

http://torbjorn.org/guestbook.html

 

Jeg bruker HTML::Template, men koden relatert til det er kun for å generere html.

 

scriptet kjører her:

http://torbjorn.org/cgi-bin/jon/guestbook.cgi

 

Jeg pleier å kjøre Fedora Core 4 på mine servere. Det er Red Hat sin community distro og har en enkel og meget god installer og er kjapp å få opp som webserver.

 

EDIT: webdesignet har jeg mer eller mindre tilfeldig hentet fra http://www.oswd.org

Endret av Torbjørn
Lenke til kommentar

den er lagt ut

 

jeg endret alle $inndata til $indata

 

det er feil i din push linje...

 

merk at:

 

@ operatoren tar {}, slik:

@{ $array_ref };

 

-> operatoren tar {} når du henter ut hash elementer

$hash_ref->{key}

 

arrays kan du ikke hente ut hash keys fra...

@array->{key} vil følgelig ikke gå

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...