# Επιλογές CLI Το pperl δέχεται ένα μικρό σύνολο σημαιών γραμμής εντολών. Οι περισσότερες είναι συμβατές με το `perl`· λίγες είναι ειδικές για το pperl (JIT, παραλληλισμός, επιλογή runtime, cache bytecode). Η αυθεντική λίστα είναι ό,τι τυπώνει το `pperl --help`· οι παρακάτω πίνακες δείχνουν αυτές τις σημαίες, εξαγμένες από τον πηγαίο κώδικα του διερμηνευτή και αποτυπωμένες εδώ σε κάθε χτίσιμο της τεκμηρίωσης. #### NOTE Η πραγματική έξοδος του `pperl --help` στο τερματικό είναι πάντα στα Αγγλικά — το εκτελέσιμο δεν τοπικοποιεί τα μηνύματα βοήθειας. Η μεταφρασμένη τεκμηρίωση παρουσιάζει τις ίδιες σημαίες με περιγραφές στη γλώσσα της σελίδας, ώστε οι αναγνώστες να μελετήσουν τι κάνει η καθεμία· τα ίδια τα ονόματα των σημαιών (`-T`, `--pp`, `--threads=N`, …) μένουν πάντα αυτούσια. PetaPerl - Περιβάλλον εκτέλεσης Perl 5 νέας γενιάς ## Χρήση ```text pperl [OPTIONS] [--] [SCRIPT [ARGS...]] pperl -e 'code' ``` ## Επιλογές συμβατές με το Perl | Σημαία | Περιγραφή | |------------------|------------------------------------------------------------------------------| | `-e 'code'` | Εκτέλεση μονόγραμμου (τα σύγχρονα χαρακτηριστικά είναι πάντα ενεργοποιημένα) | | `-Idirectory` | Προσθέτει τον κατάλογο στην αρχή του @INC | | `-c` | Έλεγχος μόνο της σύνταξης, χωρίς εκτέλεση | | `-w` | Ενεργοποίηση προειδοποιήσεων | | `-T` | Λειτουργία taint (επιβεβλημένη· μόνο στο runtime p5 — προειδοποιεί υπό –pp) | | `-t` | Προειδοποιήσεις taint (μόνο στο runtime p5 — προειδοποιεί υπό –pp) | | `-v` | Εμφάνιση πληροφοριών έκδοσης | | `-V` | Εμφάνιση αναλυτικής διαμόρφωσης | | `-h, -?, --help` | Εμφάνιση αυτού του μηνύματος βοήθειας | ## Επιλογές ειδικές για το pperl | Σημαία | Περιγραφή | |----------------------|-------------------------------------------------------------------------------------| | `--from-json, -j` | Ανάγνωση δέντρου ops από το stdin (μορφή B::PetaPerl JSON) | | `--optree, -o` | Ανάγνωση δέντρου ops από το stdin (μορφή B::Concise) | | `--stats, -s` | Εμφάνιση στατιστικών απόδοσης (χρόνος, μνήμη, ops) | | `--trace` | Ενεργοποίηση ιχνηλασίας εκτέλεσης (σημ.: το βραχύ -t είναι το taint-warn του perl5) | | `--timeout=SECS` | Ορισμός χρονικού ορίου εκτέλεσης σε δευτερόλεπτα (προεπιλογή: κανένα) | | `--dump-optree` | Εκτύπωση του κανονικού δέντρου ops (χωρίς εκτέλεση) | | `--compare-bytecode` | Σύγκριση δέντρων ops: backend perl5 έναντι εγγενούς αναλυτή | | `--cache` | Ενεργοποίηση προσωρινής αποθήκευσης bytecode (~/.pperl/cache/) | | `--flush` | Εκκαθάριση όλων των cache bytecode και έξοδος | ## Επιλογές runtime | Σημαία | Περιγραφή | |--------------------------|---------------------------------------------------------------------| | `--pp` | Χρήση του runtime pp (εγγενής αναλυτής + διερμηνευτής σε Rust) | | `--p5` | (προεπιλογή) Χρήση του αυτοτελούς runtime p5 | | `--no-jit` | Απενεργοποίηση μεταγλώττισης JIT (ενεργή από προεπιλογή) | | `--no-parallel` | Απενεργοποίηση αυτόματης παραλληλοποίησης (ενεργή από προεπιλογή) | | `--threads=N` | Αριθμός νημάτων (προεπιλογή: όλες οι CPU) | | `--parallel-threshold=N` | Ελάχιστος αριθμός επαναλήψεων για παραλληλοποίηση (προεπιλογή: 100) | ## Παραδείγματα ```text pperl script.pl ``` Εκτέλεση ενός σεναρίου Perl ```text pperl -e 'say "Hello!"' ``` Εκτέλεση μονόγραμμου (τα say, state κ.λπ. είναι πάντα διαθέσιμα) ```text pperl -c script.pl ``` Έλεγχος σύνταξης σεναρίου χωρίς εκτέλεση ```text pperl script.pl arg1 arg2 ``` Πέρασμα ορισμάτων στο σενάριο (@ARGV) Για περισσότερες πληροφορίες, δείτε: https://gl.petatech.eu/petatech/peta-perl ## Μεταβλητές περιβάλλοντος Το pperl ορίζει διάφορες μεταβλητές περιβάλλοντος εντός της διεργασίας που εκτελεί, ώστε τα σενάρια να μπορούν να εξετάσουν τον τρέχοντα διερμηνευτή: | Μεταβλητή | Σημασία | |------------------|-----------------------------------------------------------------------------------------| | `PPERL` | Συμβολοσειρά έκδοσης (ίδια με του `pperl -v`) | | `PPERL_FEATURES` | Λίστα διαχωρισμένων με κόμμα ενσωματωμένων χαρακτηριστικών Cargo | | `PPERL_MODS` | Ζεύγη `Όνομα/έκδοση` διαχωρισμένα με κόμμα για κάθε εγγενές άρθρωμα | | `PPERL_RUNTIMES` | Διαχωρισμένα με κόμμα τα ενσωματωμένα runtimes (`p5`, `pp` ή και τα δύο) | | `PPERL_SHELL` | Παραλλαγή ενσωμάτωσης shell (κενή εάν το χαρακτηριστικό `shell` είναι απενεργοποιημένο) | | `PPERL_STATIC` | `yes` εάν το εκτελέσιμο είναι στατικά συνδεδεμένο με musl, αλλιώς `no` | Εκτελέστε `pperl -V` για να δείτε όλες τις τιμές για το τρέχον εκτελέσιμο. ## Πότε να χρησιμοποιείται το `--pp` Το προεπιλεγμένο **runtime p5** είναι ο διερμηνευτής με πλήρη χαρακτηριστικά: όλα τα αρθρώματα διαθέσιμα, JIT ενεργοποιημένο, λειτουργία taint λειτουργική. Το `--pp` επιλέγει το εγγενώς γραμμένο σε Rust **runtime pp** — γρηγορότερη εκκίνηση, μικρότερο εκτελέσιμο, αλλά με στενότερο σύνολο αρθρωμάτων και χωρίς JIT. Επιλέξτε το `--pp` για αναπτύξεις τύπου miniperl ή όταν το συγκεκριμένο άρθρωμα που χρειάζεστε είναι διαθέσιμο σε αυτό (δείτε το σήμα του runtime `pp` στις σελίδες των αρθρωμάτων).