http://shh.thathost.com/text/binary-search-sql-injection.txt
Sverre.
> Når man kjeder seg finner man på rare og tildels unyttige ting, som
> feks. dette her:
Hva er det med perl som gjør at en må skrive kodesnutter som bl.a.
inneholder slikt som dette:
======
$s =~ s/([\000-\037\177-\377<>\"\#%{}|\\^~\[\]\`;\/?:@=&+])/
sprintf("%%%02X", ord($1))/ge;
$s =~ s/ /+/g;
======
--
When I'm fighting, it's like the whole world goes away.
I only know one thing: that I'm gonna win, and they're gonna lose.
I *like* that feeling.
| Hva er det med perl som gjør at en må skrive kodesnutter som bl.a.
| inneholder slikt som dette:
Mulig LWP med venner har funksjonalitet for å gjøre URL-encoding, men
siden jeg ikke er ekspert på Perl-moduler, plukker jeg fram mine
eldgamle (pre LWP) kodebiter isteden.
Sverre - som tildels er frosset fast i Perl 4 -tankegang.
>Sverre H. Husebys fingre fremførte følgende fornøyelige frase:
>
>> Når man kjeder seg finner man på rare og tildels unyttige ting, som
>> feks. dette her:
>
>Hva er det med perl som gjør at en må skrive kodesnutter som bl.a.
>inneholder slikt som dette:
>
>======
> $s =~ s/([\000-\037\177-\377<>\"\#%{}|\\^~\[\]\`;\/?:@=&+])/
> sprintf("%%%02X", ord($1))/ge;
> $s =~ s/ /+/g;
>======
Det er slik _ekte_ kode ser ut. ;-)
Hva er ellers din forklaring på at det heter "kode"?
XPOST: no.alt.frustrasjoner
> Hva er det med perl som gjør at en må skrive kodesnutter som bl.a.
> inneholder slikt som dette:
>
> ======
> $s =~ s/([\000-\037\177-\377<>\"\#%{}|\\^~\[\]\`;\/?:@=&+])/
> sprintf("%%%02X", ord($1))/ge;
> $s =~ s/ /+/g;
> ======
det er ingenting som tilsier at en _må_ skrive slikt i perl. du må
gjerne foreslå et mer lesbart alternativ, gjerne i C eller Java om
du vil.
--
Terje
da ville jeg anbefale at de skrur ned termostaten din så du ikke tiner
før verden er ferdig med Perl 6 og Larry er trygt plassert i rom med
polstrede vegger så han *aldri*, *aldri*, *aldri* kan designe språk
igjen.
tre store revisjoner -- og så klikker det for dem. merk mine ord.
:-)
-Bjørn
--
«They should make the 5 Miss Universe finalists do "The Weakest Link"
with Anne Robinson. The winner goes away with the crown, the rest
leave with nothing.»
-- Cynthia Smith
Du må jo ikke, men det gjør jo hverdagen mer interessant, da.
Bjørn
Denne kan iallefall gjøre enkeltes hverdag mere spennende:
#!perl -wlp
use strict;
s;\s+$;;;y;<>/[-]{}()`';><\\]/[}{)('`;;($==y===c)>$-&&($-=$=);
@}=($_,@})}for(map$"x-(y---c-$-).reverse,@}){
(Ja, det er kjørbar kode ;-)
Alle variasjonene av y///c (egentlig tr///c) er en skjult måte å gjøre
length() på.
--
mvh/Regards
Kåre Olai Lindbach
> det er ingenting som tilsier at en _må_ skrive slikt i perl. du må
> gjerne foreslå et mer lesbart alternativ, gjerne i C eller Java om
> du vil.
Mulig jeg vil, men det kommer ikke til å skje da jeg ikke kan.
denne koda er jo rett fram. i C ville ein sannsynlegvis initialisert
ein oppslagstabell med boolske i staden, eller brukt ein switch.
uansett ville koda verte mykje lenger utan å vere meir lettlest (IMO).
trur likevel eg ville droppa å vere så pinleg nøyaktig i kodinga, og
skrive
$s =~ s/([^\w ])/sprintf("%%%02X", ord($1))/ge;
$s =~ s/ /+/g;
--
Kjetil T. | read and make up your own mind
| http://www.cactus48.com/truth.html
> [Frank T Rambøl]
>
> | Hva er det med perl som gjør at en må skrive kodesnutter som bl.a.
> | inneholder slikt som dette:
Ingenting. Det er derimot endel ting med Perl som gjør at en _kan_
skrive slike kodesnutter. Jeg setter pris på de tingene.
> Mulig LWP med venner har funksjonalitet for å gjøre URL-encoding, men
> siden jeg ikke er ekspert på Perl-moduler, plukker jeg fram mine
> eldgamle (pre LWP) kodebiter isteden.
LWP m/venner håndterer vel HTTP m/venner, ikke HTML. HTML::* og CGI
m/venner, derimot. Men best er likevel URI::Escape, tror du ikke? :-)
use URI::Escape;
# ... og senere ...
$s = uri_escape($s);
Det er i alle fall den "riktige" løsningen. Men URI::Escape følger
ikke med en vanlig perl-distribusjon, så i fall du ikke har den
installert, blir det litt mer jobb ... tør jeg foreslå en lettvint
løsning, her på denne gruppen?
use CGI (); # Hvis du ikke allerede gjør tilsvarende
# ... og senere ...
$s = CGI::escape($s);
Dessverre er ikke denne funksjonen dokumentert, så du risikerer at
den fjernes eller endres i nye versjoner av CGI-modulen. Ikke at jeg
tror det er sannsynlig, dog. Men du er ikke _sikker_. :-)
(Og for ordens skyld -- jeg vil oppfordre til at du pensjonerer
disse "eldgamle" kodebitene. Den biten som ble sitert her så ikke
helt bra ut, og den er vel neppe den eneste.)
> Sverre - som tildels er frosset fast i Perl 4 -tankegang.
Alternativt kan du jo vente noen måneder til, så kan du hoppe rett
over på Perl 6. Slipper alt bryet med Perl 5 :-)
-SK-
--
perl -e 'print "Just another Perl ${\(trickster and hacker)},";'
The Sidhekin *proves* Sidhe did it!
> Hva er det med perl som gjør at en må skrive kodesnutter som bl.a.
> inneholder slikt som dette:
>
> ======
> $s =~ s/([\000-\037\177-\377<>\"\#%{}|\\^~\[\]\`;\/?:@=&+])/
> sprintf("%%%02X", ord($1))/ge;
> $s =~ s/ /+/g;
> ======
Det er ikke uten grunn at Perl sies å være en forkortelse
for "Pathologically Eclectic Rubbish Lister".
S.M.
> Terje Kverness fingre fremførte følgende fornøyelige frase:
>
> > det er ingenting som tilsier at en _må_ skrive slikt i perl. du
> > må gjerne foreslå et mer lesbart alternativ, gjerne i C eller Java
> > om du vil.
>
> Mulig jeg vil, men det kommer ikke til å skje da jeg ikke kan.
vel, da ville jeg ikke klaget over hvordan perl ser ut.
--
Terje
> Hva er det med perl som gjør at en må skrive kodesnutter som bl.a.
> inneholder slikt som dette:
Du har definitivt ikke sett _virkelig_ kryptisk perl-kode :-)
--
(espen)
Den er jo bare kryptisk om ikke man kan Perl. Lisp er kryptisk for meg,
men jeg tror folk som sier at det ikke er noe problem å lese for de som
kan det.
Niks. Den er *uforståelig* for folk som ikkje kan perl. Kan du perl kan
du greie å tolke linjestøyen. Du må lese det *mange* gangar og *grundig*
for å forsikre deg om at det betyr nøyaktig det du ved første øyekast
trur det betyr sjølv om du er ganske så flink i perl.
Skriv du program i perl opplever du ofte at du må bruke tid på å skjønne
kva ei linje betyr, sjølv om du sjølv er den som skreiv linja, for eit
halvår sidan.
mvh,
Eivind Kjørstad
Noen måneder, ja. Nettopp. :)
Arne.
Da bør man, som meg, holde seg til noe mere forståelig (les
C-lignende) syntaks i Perl.
Det er _det_ jeg like best med Perl, det at man kan skrive saker og
ting på mange forskjellige måter.
Noen spesielle funksjoner skriver jeg relativt kryptisk, fordi de
sitter i ryggmargen. Dog er jeg usikker på funksjonalitet og dataflyt,
skriver jeg mere forståelig, og _eventuelt_ gjør dette om til knappere
kode.
Obfuscating (vanskeliggjøre/ulesbargjøre kode), samt golfing (skrive
en gitt funksjonalitet/oppgave med så få tegn som mulig, whitespace
inkludert) er underholdning. Det er ikke for produksjonskode, men for
trimming av Perl-kunnskap og kreativitet.
>* The Sidhekin
>> Alternativt kan du jo vente noen måneder til, så kan du hoppe rett
>> over på Perl 6. Slipper alt bryet med Perl 5 :-)
Perl5 vil leve i beste velgående, både som OS-avhengig program, og på
(*) den virtuelle plattformen Parrot, som Perl6 skal gå på. Parrot er
oppe og går i en 0.0.x-versjon, om jeg ikke tar feil.
>Noen måneder, ja. Nettopp. :)
Han sa ikke hvilken planet det gjaldt!
Det er allerede mulig å skrive i Perl6, for å studere funksjonalitet
etc. Dog ville jeg ventet minst 1-2 år for produksjon. Alle
spesifikasjonene av kjerne-funksjonaliteten er enda ikke på plass.
Det kian dog hende saker og ting går raskt etterhvert som de viktigste
komponentene faller på plass.
(*) Eget prosjekt igangsatt, ledet av det britiske firmaet Fatango,
mener jeg, og med stramme tidsfrister.
[ ... ]
> Perl5 vil leve i beste velgående, både som OS-avhengig program, og
> på (*) den virtuelle plattformen Parrot, som Perl6 skal gå
> på. Parrot er oppe og går i en 0.0.x-versjon, om jeg ikke tar feil.
Parrot fungerer helt fint, og er en veldig interessant plattform med
tanke på continuations og mye annet snadder. <url: http://www.sidhe
.org/~dan/blog/ > er veldig kjekk å lese.
[ ... ]
--
Terje
[ om å få uleselig perl servert ]
> Da bør man, som meg, holde seg til noe mere forståelig (les
> C-lignende) syntaks i Perl.
nuvel. dersom jeg ser:
if (! $test ) {
foo()
}
i perlkode, så reagerer i hvert fall jeg. det er langt mer naturlig
å skrive
foo() unless $test;
det varierer med kontekst, men det er mange slike C-ismer som
virkelig ikke har noe plass i perlkode. spesielt er følgende
forjævelig å lese:
for ($i=0; $i <= $#array; $i++) {
my $elm = $array[$i];
}
> Det er _det_ jeg like best med Perl, det at man kan skrive saker og
> ting på mange forskjellige måter.
personlig liker jeg perl mye av samme grunn som jeg liker Lisp,
språket forsøker ikke fortelle deg hva som er rett tankebane, du får
bare en veldig store verktøykasse å jobbe med.
> Noen spesielle funksjoner skriver jeg relativt kryptisk, fordi de
> sitter i ryggmargen. Dog er jeg usikker på funksjonalitet og
> dataflyt, skriver jeg mere forståelig, og _eventuelt_ gjør dette om
> til knappere kode.
en viss transformering kommer en i hu. :-)
[ ... ]
--
Terje
> Niks. Den er *uforståelig* for folk som ikkje kan perl. Kan du perl kan
> du greie å tolke linjestøyen. Du må lese det *mange* gangar og *grundig*
> for å forsikre deg om at det betyr nøyaktig det du ved første øyekast
> trur det betyr sjølv om du er ganske så flink i perl.
Det er ikke noe problem å se at de to linjene i kombinasjon er ment å
URL-enkode en streng, men det er selvsagt mye pga. den siste linjen. For
å vurdere om de gjør det riktig må man selvsagt studere litt mer. Jeg
hadde nok gjort det på en måte som liknet mer på den Homme viste, og
så satt en "URL-encode string"-kommentar over.
> Skriv du program i perl opplever du ofte at du må bruke tid på å skjønne
> kva ei linje betyr, sjølv om du sjølv er den som skreiv linja, for eit
> halvår sidan.
Vel, egentlig ikke. Det er bare å passe på å kommentere de litt mer
finurlige tingene, og gjøre liknende ting på samme måte hver gang.
> vel, da ville jeg ikke klaget over hvordan perl ser ut.
Jeg klagde ikke, jeg kom med et spørsmål.
>Kåre Olai Lindbach <barb...@online.no> writes:
>
> [ ... ]
>
>> Perl5 vil leve i beste velgående, både som OS-avhengig program, og
>> på (*) den virtuelle plattformen Parrot, som Perl6 skal gå
>> på. Parrot er oppe og går i en 0.0.x-versjon, om jeg ikke tar feil.
>
> Parrot fungerer helt fint, og er en veldig interessant plattform med
> tanke på continuations og mye annet snadder.
[rettet litt på siteringen, uheldig linjeskift ;-)]
> <url: http://www.sidhe .org/~dan/blog/ > er veldig kjekk å lese.
Uff, jeg ser jeg ga ett litt feil inntrykk av Parrot.
Parrot har egen hjemmeside og alt:
<URL: http://www.parrotcode.org/>
Dog blir det sikkert endring i denne også, for å ta med
seg/effektivisere spesielle funksjonaliteter i overliggende
applikasjoner.
(Som en sidebemerkning, så er det ikke uten grunn at Parrot heter
Parrot: det gjenspeiler på den "norske" døde papegøyen i en Monty
Python-sketsj. Hvor skriptspråket Python har fått navnet sitt fra
overlater jeg som en prøvelse til leserne)
Oj, hvor ble det av On-Topic i nisd, nå :)