perl.lt 
 
 Apie Straipsniai Funkcijos Parsisiųsti Nuorodos 
 
 Versija spausdinimui /Funkcijos/warn - išvesti debuginimo informaciją/Atgal 
 
 
  • warn LIST

    Duoda STDERR žinutę, kaip kad die, bet ne išeina ir neišmeta prieštaravimo.

    Jei LIST tuščias, o $@ jau turi reikšmę (dažniausiai iš prieš tai ėjusio eval), ta reikšmė yra naudojama po pridedamo "\t...caught"$@ . Tai naudinga, nes yra beveik, tačiau ne visiškai kaip die.

    Jei $@ tuščias, tada stringas "Warning: Something's wrong" naudojamas.

    Neišvedama jokia žinutė, jei yra įdiegtas $SIG{__WARN__} valdiklis. Tai yra valdiklio atsakomybė tvarkytis su žinute kaip jam tinkama (kaip, pvz., paversti ją į die). Dauguma valdikliu privalo pasirengti iš tikro parodyti įspėjimus, su kuriais nėra pasirengę tvarkytis, iškviesdami warn valdiklyje. Įsidėmėkite, kad tai saugu ir nepadarys begalinio ciklo, nebent __WARN__ kabliukai (hooks) nėra iškviečiami iš labiausiai vidinio.

    Pamatysite, kad ši elgsena kiek kitokia nuo $SIG{__DIE__} valdiklių (kurie nesuspaudžia klaidos teksto, bet geriau iškviečia die vėl, kad jį pakeistų).

    Naudojant __WARN__ valdiklį atsiranda galingas būdas nutildyti visus įspėjimus (taip vadinamus būtinuosius). Pavyzdys:

        # wipe out *all* compile-time warnings
     BEGIN { $SIG{'__WARN__'} = sub { warn $_[0] if $DOWARN } }
    my $foo = 10;
    my $foo = 20;          # no warning about duplicate my $foo,
     # but hey, you asked for it!
     # no compile-time or run-time warnings before here
     $DOWARN = 1;
        # run-time warnings enabled after here
    warn "\$foo is alive and $foo!";     # does show up

    Žr. perlvar dėl deatlių %SIG elementų nustatymams ir daugiau pavyzdžių. Žr. Carp modulį kitoms įspėjimų rūšims, naudojant carp() ir cluck() funkcijas.

 
 
 
2005.04.11 - 2012.05.21 © algirdas@perl.lt 
 Perl.lt programavimo savaitgaliai | Reklaminiai skydeliai | Perl.lt kodas