Συντακτικά σφάλματα κατά τη μεταγλώττιση#
Σφάλματα που εγείρει ο αναλυτής πριν εκτελεστεί το πρόγραμμα. Ένα σφάλμα κατά τη μεταγλώττιση σταματά ολόκληρο το πρόγραμμα: τίποτα δεν εκτελείται, επειδή ο πηγαίος κώδικας δεν μπόρεσε να μετατραπεί σε εκτελέσιμα ops. Σε αντίθεση με τα die του χρόνου εκτέλεσης, αυτά δεν παγιδεύονται με eval BLOCK - αλλά ένα eval συμβολοσειράς πηγαίου κώδικα που αποτυγχάνει να μεταγλωττιστεί τα αναφέρει μέσω της $@:
my $code = '1 +';
eval $code;
warn "compile failed: $@" if $@;
Επίλυση υπορουτίνας κατά τη μεταγλώττιση#
`Undefined subroutine &%s`#
(F) Ο αναλυτής επέλυσε μια κλήση προς μια ονομασμένη υπορουτίνα που δεν υπάρχει κατά τη μεταγλώττιση. Αυτό είναι το αντίστοιχο κατά τη μεταγλώττιση του σφάλματος χρόνου εκτέλεσης Undefined subroutine &%s called: η διαφορά είναι πότε εντοπίζεται η απούσα sub. Βεβαιωθείτε ότι έχει γίνει use του αρθρώματος που την ορίζει, και ότι το όνομα είναι γραμμένο σωστά και πλήρως προσδιορισμένο όπου το πακέτο έχει σημασία.
Δείτε επίσης#
Γενικά μοιραία σφάλματα - η μορφή χρόνου εκτέλεσης του σφάλματος μη ορισμένης υπορουτίνας.
Υπορουτίνες - δήλωση, πρωτότυπα, και οι κανόνες που καθορίζουν πότε επιλύεται μια κλήση.
use- φέρνει το άρθρωμα που ορίζει την υπορουτίνα, κατά τη μεταγλώττιση.