SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] Ignorere stdin hvis intet er angivet.



On Fri, 1 Aug 2003, Peter Makholm wrote:

> (
>   *Aldrig* brug printf hvis det ikke er nødvendigt. Det er en dårlig
>   vane og sløver programmet betragteligt ned.
> )

Okay... Denne her forstår jeg ikke helt. Grunden til at jeg som regel
bruger printf er at jeg har en hulens bunke formatering af output der skal
udføres, for slet ikke at tale om parametererstatninger o.s.v. Jeg har
leget lidt med format og write til at erstatte printf, og i visse tilfælde
er det fint nok.

Jeg kommer hovedsaglig fra ksh/bash, og der ser man jo en tydelig
forbedring af hastigheden. Derudover er det nemmere for mig at huske
printf, som jeg jo både kan bruge i almindelige ksh-scripts, og i
perl-scripts. Det gør det lidt nemmere at holde styr på tingene, for slet
ikke at tale om at andre der skal vedligeholde scriptene måske har lidt
nemmere ved at gå til dem. Gennemskuelighed er i min situation ofte
vigtigere end hastighed, men der er selvfølgelig grænser.

Jeg er åben over for argumenter der viser _hvorfor_ printf er en dårlig
ide. De fleste af de jobs jeg har med at gøre, er for så vidt ikke
tidskritiske. De bliver startet automatisk af diverse cron-jobs, og det
gør ikke så forfærdelig meget om jobbet tager 10 sekunder eller 20
sekunder, så længe det bare opfører sig fornuftigt, stabilt og kommer med
gode fejlmeddelelser der kan reageres på.


> Jeg ville foretrække at bruge IO::Select istedet. Følgende burde være
> helt ækvivalent.

Oh ja... Det gjorde det betydelig mere læseligt/forståeligt. Det har
hermed erstattet den version jeg havde brugt.

> En lidt anden måde at gøre det på er:

Naah... God idé, men jeg har en vis antipati imod timeouts, med mindre de
er strengt nødvendige. De gør tingene unødigt komplicerede når man nogle
år senere skal forstå hvad det er der sker. Det er naturligvis bare min
holdning til sagen.

> Måske burde man lige sørge for at alarm(0) kun blev kaldt en gang.
> Select-måden er nok pænest.

Ganske enig. Jeg har lige afprøvet alle versionerne, og kunne bedst lide
IO::Select versionen. Læselig og let tilgængelig.

Til dem der afprøver timeout metoden, så husk lige et "};" i eval, ellers
vil if sætningen gå i døden.


Mange tak for ideerne.


Med venlig hilsen
Bjørn Bille Højte
sslug@sslug



 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:55
Denne side vedligeholdes af MHonArc .