|
System commands (system function)
Η Perl μας δίνει τη δυνατότητα να εκτελέσουμε εντολές του command prompt μέσα από τα scripts μας. Ο συνηθέστερος τρόπος να το κάνουμε αυτό είναι με την εντολή system. Για παράδειγμα:
system ('ls');
Το script μας θα ανοίξει ένα UNIX shell και θα τρέξει την εντολή ls που έχουμε τοποθετήσει μέσα σε αποστρόφους. Μετά την εκτέλεση της system θα εκτελεστούν κανονικά οι υπόλοιπες γραμμές κώδικα της εφαρμογής μας (σε αντίθεση με την εντολή exec που διακόπτει τη λειτουργία του προγράμματός μας και ξεκινά κάτι άλλο).
Η system μπορεί να λειτουργήσει παραμετρικά:
my $file = 'log.txt';
system ("cat $file");
Προσέξτε ότι εδώ χρησιμοποιήσαμε διπλές αποστρόφους επειδή μέσα στη system περιέχεται μια μεταβλητή και θέλουμε η Perl να χρησιμοποιήσει την τιμή αυτής της μεταβλητής. Αντίθετα στο system ('ls') το ls τοποθετήθηκε σε μονές αποστρόφους διότι θέλαμε η Perl να εκτελέσει ακριβώς ό,τι της δώσαμε.
Στη δεύτερη περίπτωση (όπως και στην πρώτη) το αποτέλεσμα της εργασίας (η εμφάνιση των περιεχομένων του αρχείου log.txt) θα παρουσιαστεί στο STDOUT (standard output), δηλαδή στην οθόνη. Αν εμείς επιθυμούμε να τοποθετηθεί σε μια μεταβλητή, τότε αντί για εισαγωγικά θα χρησιμοποιήσουμε backquotes (``). Τα backquotes πληκτρολογούνται από το πλήκτρο που βρίσκεται αριστερά του 1 και πάνω από το tab.
Στο παρακάτω παράδειγμα τρέχουμε μια εντολή με backquotes και αποθηκεύουμε το περιεχόμενό της σε μια μεταβλητή.
my $myself = `whoami`;
Καλό είναι να είμαστε προσεκτικοί στη χρήση της system, καθώς υποχρεώνει την Perl να ανοίξει ένα ξεχωριστό shell για να τρέξει αυτή την εργασία. Καταναλώνονται λοιπόν αρκετοί πόροι του συστήματος.
|
Τρέχουσα Ενότητα: Perl
|
|