|
|||||||||||||||||||||||||||
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
|
||||||||||||||
|
||||||||||||||