2013-04-30 40 views
5

Mam skrypt Perla, którego nie mogę zrozumieć.Co to jest @ @ w Perlu?

for $i(@myarr) 
{ 
    #some stuff 
    eval { 
     #some stuff 
    }; 
    if([email protected]) 
    { 
     print "*** [email protected] ****"; 
    } 
} 
  1. Co to eval zrobić? Czy jest to standardowe polecenie Perla, czy tylko jakieś podrzędne?
  2. Co to jest zmienna $ @? Obecnie drukuje ciąg znaków, ale nie wiem skąd pochodzi ten ciąg.
+2

spójrz na http://perldoc.perl.org/functions/eval.html –

Odpowiedz

7

dodać do odpowiedzi Suic, patrz moduł English, który pozwala korzystać z bardziej opisowe $EVAL_ERROR zamiast [email protected] i Try::Tiny lub TryCatch moduły uniknąć typowych pułapek związane z użyciem eval do obsługi wyjątków. Również następnym razem, gdy zastanawiasz się nad funkcją Perla, Twoim przyjacielem jest perldoc -f (np. perldoc -f eval).

+0

Dziękuję za dodatkowe informacje! dotyczące perldoc -f, czy mam go uruchomić na moim interpretatorze? Używam powłoki Hamiltona C, która może łatwo wykryć wersję Perla z perl -v, ale nie może wykonać polecenia. –

+0

Nie mam pojęcia o Perlu w systemie Windows, przepraszam. Zawsze możesz po prostu google dla "perldoc foo", działa tak samo. – zoul

6

[email protected] Błąd składni Perla lub rutynowy komunikat o błędzie z ostatniego polecenia eval, do-FILE lub require. Jeśli ustawione, albo kompilacja nie powiodła się, albo funkcja ta została wykonana w kodzie eval. Proszę przeczytać ten dokument http://perldoc.perl.org/perlvar.html

+0

Dzięki za odpowiedź. Teraz rozumiem, co robi eval. –