Η συνάρτηση Perl grep () είναι ένα φίλτρο που τρέχει μια κανονική έκφραση σε κάθε στοιχείο ενός πίνακα και επιστρέφει μόνο τα στοιχεία που αξιολογούν ως αληθής. Η χρήση τακτικών εκφράσεων μπορεί να είναι εξαιρετικά ισχυρή και πολύπλοκη. Οι λειτουργίες grep () χρησιμοποιούν τη σύνταξη @List = grep (Expression, @array).
Χρησιμοποιώντας τη λειτουργία Grep () για την επιστροφή πραγματικών εκφράσεων
@myNames = (Jacob, Michael, Joshua, Mathew, Alexander, Andrew).
@grepNames = grep (/ ^ A /, @myNames);
Σκεφτείτε τη συστοιχία @myNames ως μια σειρά αριθμημένων πλαισίων, πηγαίνοντας από αριστερά προς τα δεξιά και αριθμημένα ξεκινώντας με μηδέν. Η συνάρτηση grep () περνάει από κάθε στοιχείο (box) του πίνακα και συγκρίνει το περιεχόμενό του με την κανονική έκφραση. Εάν το αποτέλεσμα είναι αληθής, τα περιεχόμενα στη συνέχεια προστίθενται στη νέα συστοιχία @grepNames.
Στο παραπάνω παράδειγμα, η κανονική έκφραση / ^ A / ψάχνει για οποιαδήποτε τιμή ξεκινά με ένα κεφάλαιο A. Αφού κοσκινιστούν μέσω του περιεχομένου της @myNames, η αξία του @grepNames γίνεται («Alexander», «Andrew»), τα μόνα δύο στοιχεία που ξεκινούν με κεφαλαία Α.
Αντιστροφή της έκφρασης σε μια λειτουργία Grep ()
Ένας γρήγορος τρόπος για να καταστήσετε τη συγκεκριμένη λειτουργία πιο ισχυρή είναι να αντιστρέψετε την κανονική έκφραση με τον χειριστή NOT. Η κανονική έκφραση αναζητά τότε τα στοιχεία που αξιολογούν ψευδής και τα μετακινεί στη νέα συστοιχία.
@myNames = (Jacob, Michael, Joshua, Mathew, Alexander, Andrew).
@grepNames = grep (! / ^ A /, @myNames);
Στο παραπάνω παράδειγμα, η κανονική έκφραση ψάχνει για οποιαδήποτε τιμή που δεν ξεκινά με κεφάλαιο Α. Αφού κοσκινίσουμε μέσα από το περιεχόμενο της @myNames συστοιχίας, η αξία του @grepNames γίνεται ('Jacob', 'Michael', 'Joshua', 'Matthew').
Σχετικά με τον Perl
Perl είναι μια προσαρμόσιμη γλώσσα προγραμματισμού που χρησιμοποιείται συχνά για την ανάπτυξη εφαρμογών ιστού. Το Perl είναι μια γλώσσα που δεν έχει μεταγλωττιστεί, έτσι ώστε τα προγράμματά της να καταλαμβάνουν περισσότερο χρόνο CPU από μια γλώσσα που έχει συνταχθεί - ένα πρόβλημα που καθίσταται λιγότερο σημαντικό καθώς η ταχύτητα των επεξεργαστών αυξάνεται. Ωστόσο, η γραφή στο Perl είναι ταχύτερη από τη γραφή σε μια μεταγλωττισμένη γλώσσα, επομένως ο χρόνος που αποθηκεύετε είναι δικός σας.