Ted nevim zda narazite na "open F" misto "open my $f" ... to bylo vysvetleno v nejakem predeslem dile o referencich. Nebo na to "or die ..." coz je vysvetleno v dnesnim clanku. Bud muzete poctive kazdou operaci kontrolovat na selhani, coz je dost otrava a zneprehlednuje to kod. Nebo si muzete rict ze neco selhat "nemuze" a popustit uzdu a pak riskujete ze se vam pripadna chyba bude propagovat dale v kodu. Konecne, a nejlepe, muzete pouzit vyjimky, a to bud pres modul Fatal a nebo pomoci I/O operaci ktere maji vyjimky jiz zabudovane.
Pokud byste byl tvurce te funkce open (nebo jine, ktera muze potencialne selhat) tak nemate zadnou kontrolu nad tim, zda nejaky uzivatel to "or die" pouzije nebo ne. Pripadne ani nad tim do jake miry bude obsirny pri pripadne spovedi (ve vasem kodu neni ani $! - duvod chyby). Napriklad takova funkce "system" je dost brutus na analyzu navratove hodnoty.
Pomoci vyjimek muzete prave elegantne vyresit oboje dvoje. Vyjimky totiz nelze nevedomky ignorovat a duvod chyby do nich muze vlozit ta volana funkce a nikoliv aby to kazdy uzivatel sahodlouze analyzoval po svem.