/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Morsom one-liner
Fra : Jan Eliasen


Dato : 30-04-02 12:30



 
 
Bjørn Hee (30-04-2002)
Kommentar
Fra : Bjørn Hee


Dato : 30-04-02 19:57

Hej Jan.

Jan Eliasen wrote:
> Hejsa
>
> Jeg så engang sådan en lille one-liner-ting i perl, der udskrev en hel
> sang når man kørte den. Kender nogen til den? Andre? Links? Ja, jeg

Dette er godt nok en 3-liniers...

#!/usr/bin/perl
-iake_one_down_pass_it_around:_bottles_of_beer:_on_the_wall:99
for(($t,$a,$b,$i)=split/:/,$^I;$i;print){$_="-$i$a$b,-$i$a,-T$t,-".--$i."$a$b
";s/(-1_.*?e)s/$1/g;y/_-/ \n/}# by Randolph Chung and Joey Hess

DVS det med 3-liniers kommer vel an på linielængden


> søgt på google, men jeg finder ikke rigtigt noget :-/
>
> På forhånd tak, og hav en fortsat god uge.
>


--
MVH Bjørn Hee <b@h33.dk> L|J(_) C
http://www.h33.dk/ | (¨) Z
"Sproget forfalsker virke- |\/ \ -
ligheden" - Nietzsche |FBSD X


Lars Balker Rasmusse~ (30-04-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 30-04-02 21:33

Bjørn Hee <b@h33.dk> writes:
> Dette er godt nok en 3-liniers...
>
> #!/usr/bin/perl
> -iake_one_down_pass_it_around:_bottles_of_beer:_on_the_wall:99
> for(($t,$a,$b,$i)=split/:/,$^I;$i;print){$_="-$i$a$b,-$i$a,-T$t,-".--$i."$a$b
> ";s/(-1_.*?e)s/$1/g;y/_-/ \n/}# by Randolph Chung and Joey Hess
>
> DVS det med 3-liniers kommer vel an på linielængden

Nej, det er en vaskeægte one-liner.

perl -iake_one_down_pass_it_around:_bottles_of_beer:_on_the_wall:99 -e 'for(($t,$a,$b,$i)=split/:/,$^I;$i;print){$_="-$i$a$b,-$i$a,-T$t,-".--$i."$a$b";s/(-1_.*?e)s/$1/g;y/_-/ \n/}'

Smart trick med $^I i øvrigt.
--
Lars Balker Rasmussen                  "S.M.R.T."

Bjørn Hee (01-05-2002)
Kommentar
Fra : Bjørn Hee


Dato : 01-05-02 19:43

Hej Lars.

Lars Balker Rasmussen wrote:

> Bjørn Hee <b@h33.dk> writes:
>>
>>DVS det med 3-liniers kommer vel an på linielængden
>>
>
> Nej, det er en vaskeægte one-liner.
>


Findes der en definition af hvad en "one-liner" er?

Hvis definitionen er, at de fyres af på en kommandolinie, er der vel
ikke den store udfordring i at konstruere dem. Ifølge min vage intuition
må der osse være et krav om korthed...

--
MVH Bjørn Hee <b@h33.dk> L|J(_) C
http://www.h33.dk/ | (¨) Z
"Sproget forfalsker virke- |\/ \ -
ligheden" - Nietzsche |FBSD X


Lars Balker Rasmusse~ (01-05-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 01-05-02 20:37

Bjørn Hee <b@h33.dk> writes:
> Findes der en definition af hvad en "one-liner" er?
>
> Hvis definitionen er, at de fyres af på en kommandolinie, er der vel
> ikke den store udfordring i at konstruere dem. Ifølge min vage
> intuition må der osse være et krav om korthed...

Næh, kravet er såmænd blot at det kan stå på kommandolinien. Jeg kan
ikke se hvorfor du mener det skal være svært at lave en oneliner.

(Desuden har man ikke lyst til at skrive alt for lange one-linere. På
et tidspunkt bliver det nemmere at hoppe ind i en editor.)
--
Lars Balker Rasmussen                  "S.M.R.T."

Thorbjørn Ravn Ander~ (01-05-2002)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 01-05-02 22:22

Bjørn Hee <b@h33.dk> writes:

> Hvis definitionen er, at de fyres af på en kommandolinie, er der vel
> ikke den store udfordring i at konstruere dem. Ifølge min vage
> intuition må der osse være et krav om korthed...

Stå på én linie i en Makefil?
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Kim Hansen (02-05-2002)
Kommentar
Fra : Kim Hansen


Dato : 02-05-02 13:26

Lars Balker Rasmussen <lars@balker.org> writes:

> perl -iake_one_down_pass_it_around:_bottles_of_beer:_on_the_wall:99 -e 'for(($t,$a,$b,$i)=split/:/,$^I;$i;print){$_="-$i$a$b,-$i$a,-T$t,-".--$i."$a$b";s/(-1_.*?e)s/$1/g;y/_-/ \n/}'

> Smart trick med $^I i øvrigt.

Hvorfor, gør det den ikke bare 4 tegn længere? Eller har jeg overset
en smart detalje?

perl -e 'for(($t,$a,$b,$i)=split/:/,"ake_one_down_pass_it_around:_bottles_of_beer:_on_the_wall:99";$i;print){$_="-$i$a$b,-$i$a,-T$t,-".--$i."$a$b";s/(-1_.*?e)s/$1/g;y/_-/ \n/}'


--
Kim Hansen | |\ _,,,---,,_
Dalslandsgade 8, A708 | /,`.-'`' -. ;-;;,_
2300 København S | |,4- ) )-,_. ,\ ( `'-'
Phone: 32 88 60 86 | '---''(_/--' `-'\_)

Lars Balker Rasmusse~ (02-05-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 02-05-02 13:31

Kim Hansen <k@oek.dk> writes:
> Eller har jeg overset en smart detalje?

Pffft.

Du har vist ikke meget JAPH i dig
--
Lars Balker Rasmussen "Special is bad."

Kim Hansen (02-05-2002)
Kommentar
Fra : Kim Hansen


Dato : 02-05-02 14:18

Lars Balker Rasmussen <lars@balker.org> writes:

> Kim Hansen <k@oek.dk> writes:
> > Eller har jeg overset en smart detalje?
>
> Pffft.
>
> Du har vist ikke meget JAPH i dig

Det er jo en grov fornærmelse :(

Jeg spurgte fordi jeg sad og kiggede koden igennem grundigt og
begyndte af få fornemmelsen af at der måtte være noget jeg havde
overset.

Jeg har leget lidt med det, og hvis formålet er at lave spille golf
kan tricket kun bruges til at initialisere en variable som bruges en
gang. Hvis man bruger den flere gange så koster det at variabelnavnet
er så langt.

--
Kim Hansen | |\ _,,,---,,_
Dalslandsgade 8, A708 | /,`.-'`' -. ;-;;,_
2300 København S | |,4- ) )-,_. ,\ ( `'-'
Phone: 32 88 60 86 | '---''(_/--' `-'\_)

Lars Balker Rasmusse~ (03-05-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 03-05-02 11:40

Kim Hansen <k@oek.dk> writes:
> Lars Balker Rasmussen <lars@balker.org> writes:
> > Kim Hansen <k@oek.dk> writes:
> > > Eller har jeg overset en smart detalje?
> >
> > Pffft.
> >
> > Du har vist ikke meget JAPH i dig
>
> Det er jo en grov fornærmelse :(

Intet mindre :)

> Jeg spurgte fordi jeg sad og kiggede koden igennem grundigt og
> begyndte af få fornemmelsen af at der måtte være noget jeg havde
> overset.
>
> Jeg har leget lidt med det, og hvis formålet er at lave spille golf
> kan tricket kun bruges til at initialisere en variable som bruges en
> gang. Hvis man bruger den flere gange så koster det at variabelnavnet
> er så langt.

Længden er da sekundær til manglen på klarhed.
--
Lars Balker Rasmussen "Special is bad."

Kim Hansen (03-05-2002)
Kommentar
Fra : Kim Hansen


Dato : 03-05-02 11:44

Lars Balker Rasmussen <lars@balker.org> writes:

> Kim Hansen <k@oek.dk> writes:
> > Jeg har leget lidt med det, og hvis formålet er at lave spille golf
> > kan tricket kun bruges til at initialisere en variable som bruges en
> > gang. Hvis man bruger den flere gange så koster det at variabelnavnet
> > er så langt.
>
> Længden er da sekundær til manglen på klarhed.

Ikke hvis man golfer...

--
Kim Hansen | |\ _,,,---,,_
Dalslandsgade 8, A708 | /,`.-'`' -. ;-;;,_
2300 København S | |,4- ) )-,_. ,\ ( `'-'
Phone: 32 88 60 86 | '---''(_/--' `-'\_)

Lars Balker Rasmusse~ (03-05-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 03-05-02 12:41

Kim Hansen <k@oek.dk> writes:
> Ikke hvis man golfer...

Hmm, det kender jeg ikke - url?
--
Lars Balker Rasmussen "Special is bad."

merlin (01-05-2002)
Kommentar
Fra : merlin


Dato : 01-05-02 01:37

> #!/usr/bin/perl
> -iake_one_down_pass_it_around:_bottles_of_beer:_on_the_wall:99
> for(($t,$a,$b,$i)=split/:/,$^I;$i;print){$_="-$i$a$b,-$i$a,-T$t,-".--
> $i."$a$b ";s/(-1_.*?e)s/$1/g;y/_-/ \n/}# by Randolph Chung and
> Joey Hess
>

Erhm nu er jeg overhovedet ikke perl hacker, men fik bare lyst til at
eksekvere den.
Men det vil den ikke :-?

--
merlin@hal/perl$:./oneliner.pl
syntax error at ./oneliner.pl line 2, near "iake_one_down_pass_it_around:"
Execution of ./oneliner.pl aborted due to compilation errors.
--

er hvad den skriver.

Mvh
Thomas



Peter Brodersen (01-05-2002)
Kommentar
Fra : Peter Brodersen


Dato : 01-05-02 02:12

On Wed, 1 May 2002 02:37:25 +0200, "merlin" <merlin@merlin.sprex.dk>
wrote:

>> #!/usr/bin/perl
>> -iake_one_down_pass_it_around:_bottles_of_beer:_on_the_wall:99
>> for(($t,$a,$b,$i)=split/:/,$^I;$i;print){$_="-$i$a$b,-$i$a,-T$t,-".--
>> $i."$a$b ";s/(-1_.*?e)s/$1/g;y/_-/ \n/}# by Randolph Chung and
>> Joey Hess
>Erhm nu er jeg overhovedet ikke perl hacker, men fik bare lyst til at
>eksekvere den.
>Men det vil den ikke :-?

"-i..." er argument til kommandofortolkeren. Det skal altså være
(fjern selv "> " i begyndelsen af hver linje):

> #!/usr/bin/perl -iake_one_down_pass_it_around:_bottles_of_beer:_on_the_wall:99
> for(($t,$a,$b,$i)=split/:/,$^I;$i;print){$_="-$i$a$b,-$i$a,-T$t,-".--
> $i."$a$b ";s/(-1_.*?e)s/$1/g;y/_-/ \n/}# by Randolph Chung and Joey Hess

Men som nævnt kan det også køres pr. kommandolinje vha. -e

--
- Peter Brodersen

Peter Makholm (03-05-2002)
Kommentar
Fra : Peter Makholm


Dato : 03-05-02 11:50

Kim Hansen <k@oek.dk> writes:

> Ikke hvis man golfer...

Når man golfer laver man ikke one-liners. Normale golf-huller løses
ofte bedst ved at bruge flere linjer.

Men åhhh hvor er jeg elendig til det spil. Der må være noget
indlysende jeg ikke har indset om denne måneds problemer.

--
Peter Makholm | I have something to say: It's better to burn in
peter@makholm.net | hell, than to fade away!
http://hacking.dk | -- Kurgan

Peter Makholm (03-05-2002)
Kommentar
Fra : Peter Makholm


Dato : 03-05-02 12:58

Lars Balker Rasmussen <lars@balker.org> writes:

> Kim Hansen <k@oek.dk> writes:
>> Ikke hvis man golfer...
>
> Hmm, det kender jeg ikke - url?

<http://perlgolf.sourceforge.net/>

--
Peter Makholm | I have no caps-lock but I must scream...
peter@makholm.net | -- Greg
http://hacking.dk |

Lars Balker Rasmusse~ (03-05-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 03-05-02 13:26

Peter Makholm <peter@makholm.net> writes:
> Lars Balker Rasmussen <lars@balker.org> writes:
> > Kim Hansen <k@oek.dk> writes:
> >> Ikke hvis man golfer...
> >
> > Hmm, det kender jeg ikke - url?
>
> <http://perlgolf.sourceforge.net/>

Heh, cute. Jeg lavede lige en cantor.pl på 86 tegn - er det godt?
--
Lars Balker Rasmussen "Special is bad."

Thorbjørn Ravn Ander~ (05-05-2002)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 05-05-02 10:39

Peter Makholm <peter@makholm.net> writes:

> <http://perlgolf.sourceforge.net/>

Det er sjovt. Svært, men sjovt!

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Bjørn Hee (06-05-2002)
Kommentar
Fra : Bjørn Hee


Dato : 06-05-02 18:45

Peter Makholm wrote:

>
> <http://perlgolf.sourceforge.net/>
>

Der var link til et link til en tråd fra 1993, hvori der er et andet
svar på det spørgsmål der startede denne tråd:

#!/usr/bin/perl
for(1..10){printf"$_ little %s\n",$_%3?/0/&&"indian boys":indians}

eller

#!/usr/bin/perl
for(1..10){print"$_ little ",$_%3?/0/&&"indian boys":indians,"\n"}

(indsæt selv perl -e '...' for one-linere)

--
MVH Bjørn Hee <b@h33.dk> L|J(_) C
http://www.h33.dk/ | (¨) Z
"Sproget forfalsker virke- |\/ \ -
ligheden" - Nietzsche |FBSD X


Peter Makholm (03-05-2002)
Kommentar
Fra : Peter Makholm


Dato : 03-05-02 13:30

Lars Balker Rasmussen <lars@balker.org> writes:

> Heh, cute. Jeg lavede lige en cantor.pl på 86 tegn - er det godt?

Hvis du så kan løse kola.pl på 7 tegn, så er du på førstepladsne. Jeg
har løst cantor på 48 tegn, det kan gøres på 34 tegn.

--
Peter Makholm | I have no caps-lock but I must scream...
peter@makholm.net | -- Greg
http://hacking.dk |

Lars Balker Rasmusse~ (03-05-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 03-05-02 13:46

Peter Makholm <peter@makholm.net> writes:
> > Heh, cute. Jeg lavede lige en cantor.pl på 86 tegn - er det godt?
>
> Hvis du så kan løse kola.pl på 7 tegn, så er du på førstepladsne. Jeg
> har løst cantor på 48 tegn, det kan gøres på 34 tegn.

Aha :)

79 tegn nu. Tror ikke rigtigt der kan klemmes mere ud af den metode.
Og nu må jeg vist hellere lave noget fornuftigt.
--
Lars Balker Rasmussen "Special is bad."

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste