Κορυφαίες 69 ερωτήσεις και απαντήσεις συνέντευξης Perl (2025)
Ακολουθούν ερωτήσεις συνέντευξης και απαντήσεις στο Perl Scripting για πιο φρέσκους όσο και έμπειρους υποψηφίους για να πάρουν τη δουλειά των ονείρων τους.
Ερωτήσεις συνέντευξης Perl για φρεσκάδες
1) Διαφορά μεταξύ των μεταβλητών στις οποίες λειτουργεί η συνάρτηση chomp;
- Βαθμωτό μέγεθος: Συμβολίζεται με το σύμβολο $. Η μεταβλητή μπορεί να είναι ένας αριθμός ή μια συμβολοσειρά.
- Παράταξη: Συμβολίζεται με το πρόθεμα συμβόλου @. Οι πίνακες ευρετηριάζονται με αριθμούς.
Ο χώρος ονομάτων για αυτούς τους τύπους μεταβλητών είναι διαφορετικός. Για παράδειγμα: @add, $add. Οι βαθμωτές μεταβλητές βρίσκονται σε έναν πίνακα ονομάτων ή χώρου ονομάτων και μπορεί να κρατήσει μεμονωμένες συγκεκριμένες πληροφορίες κάθε φορά και οι μεταβλητές του πίνακα βρίσκονται σε έναν άλλο πίνακα ονομάτων ή χώρου ονομάτων. Οι βαθμωτές μεταβλητές μπορεί να είναι είτε αριθμός είτε συμβολοσειρά
👉 Δωρεάν λήψη PDF: Ερωτήσεις & Απαντήσεις συνέντευξης Perl
2) Δημιουργία μιας συνάρτησης που είναι διαθέσιμη μόνο εντός του πεδίου όπου έχει οριστεί;
$pvt = Calculation(5,5); print("Result = $pvt\n"); sub Calculation{ my ($fstVar, $secndVar) = @_; my $square = sub{ return($_[0] ** 2); }; return(&$square($fstVar) + &$square($secndVar)); };
Παραγωγή: Αποτέλεσμα = 50
3) Ποιο χαρακτηριστικό της Perl παρέχει δυνατότητα επαναχρησιμοποίησης κώδικα; Δώστε οποιοδήποτε παράδειγμα αυτού του χαρακτηριστικού.
Η δυνατότητα κληρονομικότητας της Perl παρέχει δυνατότητα επαναχρησιμοποίησης κώδικα. Στην κληρονομικότητα, η θυγατρική κλάση μπορεί να χρησιμοποιήσει τις μεθόδους και την ιδιότητα της γονικής κλάσης
Package Parent; Sub foo { print("Inside A::foo\n"); } package Child; @ISA = (Parent); package main; Child->foo(); Child->bar();
4) Στο Perl μπορούμε να δείξουμε τις προειδοποιήσεις χρησιμοποιώντας κάποιες επιλογές για να μειώσουμε ή να αποφύγουμε τα λάθη. Ποιες είναι αυτές οι επιλογές;
- Η επιλογή γραμμής εντολών -w: Θα εμφανίσει τη λίστα εάν υπάρχουν προειδοποιητικά μηνύματα σχετικά με τον κωδικό.
- αυστηρή πραγματικότητα: Αναγκάζει το χρήστη να δηλώσει όλες τις μεταβλητές προτού μπορέσουν να χρησιμοποιηθούν χρησιμοποιώντας τη συνάρτηση my().
- Χρησιμοποιώντας το ενσωματωμένο πρόγραμμα εντοπισμού σφαλμάτων: Επιτρέπει στον χρήστη να κάνει κύλιση σε ολόκληρο το πρόγραμμα γραμμή προς γραμμή.
5) Γράψτε το πρόγραμμα για την επεξεργασία μιας λίστας αριθμών.
Το παρακάτω πρόγραμμα θα ζητούσε από τον χρήστη να εισάγει αριθμούς όταν εκτελείται και ο μέσος όρος των αριθμών εμφανίζεται ως έξοδος:
$sum = 0; $count = 0; print "Enter number: "; $num = <>; chomp($num); while ($num >= 0) { $count++; $sum += $num; print "Enter another number: "; $num = <>; chomp($num); } print "$count numbers were entered\n"; if ($count > 0) { print "The average is ",$sum/$count,"\n"; } exit(0);
6) Έχει αντικείμενα η Perl; Εάν ναι, τότε σας αναγκάζει να χρησιμοποιήσετε αντικείμενα; Αν όχι, τότε γιατί;
Ναι, Perl έχει αντικείμενα και δεν σας αναγκάζει να χρησιμοποιήσετε αντικείμενα. Πολλές αντικειμενοστρεφείς μονάδες μπορούν να χρησιμοποιηθούν χωρίς την κατανόηση αντικειμένων. Αλλά εάν το πρόγραμμα είναι πολύ μεγάλο, τότε είναι αποτελεσματικό για τον προγραμματιστή να το κάνει αντικειμενοστρεφές.
7) Μπορούμε να φορτώσουμε τη δυαδική επέκταση δυναμικά;
Ναι, μπορούμε να φορτώσουμε τη δυαδική επέκταση δυναμικά, αλλά το σύστημά σας το υποστηρίζει. Εάν δεν υποστηρίζει, τότε μπορείτε να μεταγλωττίσετε στατικά την επέκταση.
8) Γράψτε ένα πρόγραμμα για τη σύνδεση των $firststring και $secondstring και το αποτέλεσμα αυτών των συμβολοσειρών θα πρέπει να χωρίζεται με ένα μόνο διάστημα.
Σύνταξη:
$result = $firststring . " ".$secondstring;
Πρόγραμμα:
#!/usr/bin/perl $firststring = "abcd"; $secondstring = "efgh"; $combine = "$firststring $secondstring"; print "$Combine\n";
Παραγωγή:
abcd efgh
9) Πώς αντικαθιστώ κάθε χαρακτήρα TAB σε ένα αρχείο με κόμμα;
perl -pi.bak -e 's/\t/,/g' myfile.txt
10) Στην Perl, υπάρχουν ορισμένα ορίσματα που χρησιμοποιούνται συχνά. Ποια είναι αυτά τα επιχειρήματα και τι σημαίνουν;
-w (το όρισμα εμφανίζει προειδοποίηση)
-d (χρήση για εντοπισμό σφαλμάτων)
-c (που μεταγλωττίζει μόνο δεν εκτελείται)
-e (που εκτελείται)
Μπορούμε επίσης να χρησιμοποιήσουμε συνδυασμό αυτών όπως:
-wd
11) Πόσοι τύποι πρωτογενών δομών δεδομένων στο Perl και τι σημαίνουν;
Το κλιμακωτό: Μπορεί να περιέχει μία συγκεκριμένη πληροφορία κάθε φορά (συμβολοσειρά, ακέραιος ή αναφορά). Ξεκινά με το σύμβολο $$ ακολουθούμενο από το αναγνωριστικό Perl και το αναγνωριστικό Perl μπορεί να περιέχει αλφαριθμητικά και κάτω παύλες. Δεν επιτρέπεται η έναρξη με ψηφίο. Οι πίνακες είναι απλώς μια λίστα βαθμωτών μεταβλητών.
Πίνακες: Οι πίνακες ξεκινούν με το σύμβολο @. Παράδειγμα πίνακα:
my @arrayvar = ("string a", "string b "string c");
Συνειρμικοί πίνακες: Επίσης συχνά αποκαλείται κατακερματισμός, είναι ο τρίτος σημαντικός τύπος δεδομένων στην Perl μετά από βαθμωτούς και πίνακες. Οι κατακερματισμοί ονομάζονται έτσι επειδή λειτουργούν πολύ παρόμοια με μια κοινή δομή δεδομένων που χρησιμοποιούν οι προγραμματιστές σε άλλες γλώσσες - πίνακες κατακερματισμού. Ωστόσο, οι κατακερματισμοί στο Perl είναι στην πραγματικότητα ένας τύπος δεδομένων που υποστηρίζεται απευθείας από τη γλώσσα.
12) Ποιες λειτουργίες στην Perl σας επιτρέπουν να συμπεριλάβετε ένα αρχείο λειτουργικής μονάδας ή μια ενότητα και ποια είναι η διαφορά μεταξύ τους;
"χρήση"
- Η μέθοδος χρησιμοποιείται μόνο για τις ενότητες (μόνο για να περιλαμβάνει αρχείο τύπου .pm)
- Τα αντικείμενα που περιλαμβάνονται επαληθεύονται κατά τη στιγμή της μεταγλώττισης.
- Δεν χρειάζεται να καθορίσουμε την επέκταση αρχείου.
- φορτώνει τη μονάδα κατά το χρόνο μεταγλώττισης.
"απαιτώ"
- Η μέθοδος χρησιμοποιείται τόσο για βιβλιοθήκες όσο και για ενότητες.
- Τα αντικείμενα που περιλαμβάνονται επαληθεύονται κατά το χρόνο εκτέλεσης.
- Πρέπει να καθορίσουμε την επέκταση αρχείου.
- Φορτώνει κατά το χρόνο εκτέλεσης.
ας υποθέσουμε ότι έχουμε ένα αρχείο ενότητας ως "Module.pm"
χρησιμοποιήστε το Module.
or
απαιτούν "Module.pm"?
(θα κάνει το ίδιο)
13) Πώς μπορείτε να ορίσετε το εύρος των μεταβλητών "μου" στο Perl και πώς διαφέρει από το εύρος της μεταβλητής "τοπικό";
$test = 2.3456; { my $test = 3; print "In block, $test = $test "; print "In block, $:: test = $:: test "; } print "Outside the block, $test = $test "; print "Outside the block, $:: test = $::test ";
Παραγωγή:
In block, $test = 3 In block, $::test = 2.3456 Outside the block, $test = 2.3456 Outside the block, $::test = 2.3456
Το εύρος της ορατότητας της μεταβλητής "my" βρίσκεται μόνο στο μπλοκ, αλλά αν δηλώσουμε μια μεταβλητή τοπική, τότε μπορούμε να έχουμε πρόσβαση σε αυτήν και από το εξωτερικό του μπλοκ. Το "my" δημιουργεί μια νέα μεταβλητή, το "local" τροποποιεί προσωρινά την τιμή μιας μεταβλητής.
14) Ποιες οδηγίες από τις μονάδες Perl πρέπει να ακολουθούνται;
Ακολουθούν οδηγίες και δεν είναι υποχρεωτικές
Το όνομα του πακέτου πρέπει πάντα να ξεκινά με κεφαλαίο γράμμα.
Ολόκληρο το όνομα του αρχείου θα πρέπει να έχει την επέκταση ".pm".
Σε περίπτωση που δεν χρησιμοποιείται αντικειμενοστραφή τεχνική, το πακέτο θα πρέπει να προέρχεται από την κλάση Exporter.
Επίσης, εάν δεν χρησιμοποιούνται αντικειμενοστρεφείς τεχνικές, η λειτουργική μονάδα θα πρέπει να εξάγει τις συναρτήσεις και τις μεταβλητές της στον κύριο χώρο ονομάτων χρησιμοποιώντας τους πίνακες @EXPORT και @EXPOR_OK (η οδηγία χρήσης χρησιμοποιείται για τη φόρτωση των λειτουργικών μονάδων).
Ερωτήσεις και απαντήσεις συνέντευξης Perl για έμπειρους
Παρακάτω είναι οι ερωτήσεις και οι απαντήσεις της συνέντευξης Perl Scripting για έμπειρους υποψηφίους:
15) Πώς χρησιμοποιείται ο διερμηνέας στο Perl;
Κάθε πρόγραμμα Perl πρέπει να περάσει μέσω του διερμηνέα Perl για να εκτελεστεί. Η πρώτη γραμμή σε πολλά προγράμματα Perl είναι κάτι σαν:
#!/usr/bin/perl
Ο διερμηνέας μεταγλωττίζει το πρόγραμμα εσωτερικά σε ένα δέντρο ανάλυσης. Οποιεσδήποτε λέξεις, κενά ή σημάδια μετά από ένα σύμβολο λίρας θα αγνοηθούν από τον διερμηνέα του προγράμματος. Μετά τη μετατροπή σε δέντρο ανάλυσης, ο διερμηνέας το εκτελεί αμέσως. Η Perl είναι κοινώς γνωστή ως ερμηνευμένη γλώσσα, δεν είναι αυστηρά αληθινή. Δεδομένου ότι ο διερμηνέας πραγματικά μετατρέπει το πρόγραμμα σε κώδικα byte πριν το εκτελέσει, μερικές φορές ονομάζεται διερμηνέας/μεταγλωττιστής. Αν και η μεταγλωττισμένη φόρμα δεν αποθηκεύεται ως αρχείο.
16) "Οι μέθοδοι που ορίζονται στη γονική κλάση θα παρακάμπτουν πάντα τις μεθόδους που ορίζονται στη βασική κλάση". Τι σημαίνει αυτή η δήλωση;
Η παραπάνω δήλωση είναι μια έννοια του Πολυμορφισμού στο Perl. Για να διευκρινίσουμε τη δήλωση, ας πάρουμε ένα παράδειγμα:
[perl] package X; sub foo { print("Inside X::foo\n"); } package Z; @ISA = (X); sub foo { print("Inside Z::foo\n"); } package main; Z->foo(); [/perl]
Αυτό το πρόγραμμα εμφανίζει:
Μέσα Z::foo
– Στο παραπάνω παράδειγμα, η μέθοδος foo() που ορίζεται στην κλάση Z παρακάμπτει την κληρονομικότητα από την κλάση X. Ο πολυμορφισμός χρησιμοποιείται κυρίως για την προσθήκη ή επέκταση της λειτουργικότητας μιας υπάρχουσας κλάσης χωρίς επαναπρογραμματισμό ολόκληρης της κλάσης.
17) Για μια κατάσταση στον προγραμματισμό, πώς μπορείτε να προσδιορίσετε ότι η Perl είναι κατάλληλη;
Εάν χρειάζεστε ταχύτερη εκτέλεση, η Perl θα σας παρέχει αυτήν την απαίτηση. Υπάρχει μεγάλη ευελιξία στον προγραμματισμό εάν θέλετε να αναπτύξετε μια εφαρμογή που βασίζεται στο web. Δεν χρειάζεται να αγοράσουμε την άδεια χρήσης για την Perl επειδή είναι δωρεάν. Μπορούμε να χρησιμοποιήσουμε το CPAN (Comprehensive Perl Archive Network), το οποίο είναι ένα από τα μεγαλύτερα αποθετήρια δωρεάν κώδικα στον κόσμο.
18) Γράψτε σύνταξη για να προσθέσετε δύο πίνακες μαζί στο perl;
@arrayvar = (@array1,@array2);
Για να πετύχουμε το ίδιο, μπορούμε επίσης να χρησιμοποιήσουμε τη λειτουργία push.
19) Πόσοι τύποι τελεστών χρησιμοποιούνται στο Perl;
Αριθμητικοί τελεστές
+, - ,*
Χειριστές ανάθεσης:
+= , -+, *=
Τελεστές αύξησης/μείωσης:
++, --
Σύνδεση χορδών:
'.'
χειριστής
τελεστές σύγκρισης:
==, !=, >, < , >=
Λογικοί τελεστές:
&&, ||, !
20) Αν θέλετε να αδειάσετε έναν πίνακα, τότε πώς θα το κάνατε;
Μπορούμε να αδειάσουμε έναν πίνακα ορίζοντας το μήκος του σε οποιονδήποτε αριθμό –ve, γενικά -1 και εκχωρώντας null list
use strict; use warnings; my @checkarray; if (@checkarray) { print "Array is not empty"; } else { print "Array is empty"; }
21) Πού αποθηκεύονται τα ορίσματα της γραμμής εντολών και εάν θέλετε να διαβάσετε ορίσματα γραμμής εντολών με την Perl, πώς θα το κάνατε αυτό;
Τα ορίσματα της γραμμής εντολών στο Perl αποθηκεύονται σε έναν πίνακα @ARGV.
$ARGV[0] (το πρώτο όρισμα)
$ARGV[1] (το δεύτερο όρισμα) και ούτω καθεξής.
$#ARGV είναι ο δείκτης του τελευταίου στοιχείου του πίνακα @ARGV, επομένως ο αριθμός των ορισμάτων στη γραμμή εντολών είναι $#ARGV + 1
22) Ας υποθέσουμε ότι ένας πίνακας περιέχει @arraycontent=('ab', 'cd', 'ef', 'gh'). Πώς να εκτυπώσετε όλα τα περιεχόμενα του δεδομένου πίνακα;
@arraycontent=('ab', 'cd', 'ef', 'gh') foreach (@arraycontent) { print "$_\n"; }
23) Ποια είναι η χρήση των -w, -t και αυστηρών στην Perl;
Όταν χρησιμοποιούμε –w, δίνει προειδοποιήσεις σχετικά με τα πιθανά σφάλματα ερμηνείας στο σενάριο.
Το Strict λέει στην Perl να επιβάλει ελέγχους στον ορισμό και τη χρήση των μεταβλητών. Αυτό μπορεί να κληθεί χρησιμοποιώντας την εντολή use αυστηρή. Εάν υπάρχουν οποιεσδήποτε μη ασφαλείς ή διφορούμενες εντολές στο σενάριο, αυτό το πρακτικό σταματά την εκτέλεση του σεναρίου αντί να δίνει απλώς προειδοποιήσεις.
Όταν χρησιμοποιείται –t, ενεργοποιεί τον έλεγχο λεκέδων. Αναγκάζει την Perl να ελέγχει την προέλευση των μεταβλητών όπου οι εξωτερικές μεταβλητές δεν μπορούν να χρησιμοποιηθούν σε εκτελέσεις δευτερεύοντος φλοιού και κλήσεις συστήματος
24) Γράψτε ένα πρόγραμμα για τη λήψη των περιεχομένων από τον ιστότοπο www.perlinterview.com/answers.php σε Perl.
#!/usr/bin/perl use strict; use warnings; use LWP::Simple; my $siteurl = 'www.perlinterview.com/answers.php'; my $savefile = 'content.kml'; getstore($siteurl, $savefile);
25) Ποιο έχει την υψηλότερη προτεραιότητα, Λίστα ή Όροι; Εξηγώ?
Οι όροι έχουν την υψηλότερη προτεραιότητα στην Perl. Οι όροι περιλαμβάνουν μεταβλητές, εισαγωγικά, εκφράσεις σε παρένθεση κ.λπ. Οι τελεστές λίστας έχουν το ίδιο επίπεδο προτεραιότητας με τους όρους. Συγκεκριμένα, αυτοί οι τελεστές έχουν πολύ ισχυρή προτεραιότητα αριστερής λέξης.
26) Καταγράψτε τους τύπους δεδομένων που μπορεί να χειριστεί η Perl;
Scalars ($): Αποθηκεύει μια μεμονωμένη τιμή.
Πίνακες (@): Αποθηκεύει μια λίστα με βαθμωτές τιμές.
Κατακερματισμοί (%): Αποθηκεύει συσχετιστικούς πίνακες που χρησιμοποιούν μια βασική τιμή ως ευρετήριο αντί για αριθμητικά ευρετήρια
27) Γράψτε σύνταξη για να χρησιμοποιήσετε τη συνάρτηση grep;
grep BLOCK LIST grep (EXPR, LIST)
28) Ποια είναι η χρήση των επιλογών -n και -p;
Οι επιλογές -n και -p χρησιμοποιούνται για να τυλίξουν τα σενάρια μέσα βρόχους. Η επιλογή -n κάνει την Perl να εκτελεί το σενάριο μέσα στον βρόχο. Η επιλογή -p χρησιμοποίησε επίσης τον ίδιο βρόχο με τον βρόχο -n, αλλά εκτός από αυτήν, χρησιμοποιεί και τη συνέχεια. Εάν και οι δύο επιλογές -n και -p χρησιμοποιούνται μαζί, η επιλογή -p προτιμάται.
29) Ποια είναι η χρήση των επιλογών -i και 0s;
Η επιλογή -i χρησιμοποιείται για την τροποποίηση των αρχείων επιτόπου. Αυτό σημαίνει ότι η Perl θα μετονομάσει αυτόματα το αρχείο εισόδου και το αρχείο εξόδου ανοίγει χρησιμοποιώντας το αρχικό όνομα. Εάν η επιλογή -i χρησιμοποιείται μόνη της, τότε δεν θα δημιουργηθεί αντίγραφο ασφαλείας του αρχείου. Αντίθετα, το -i.bak προκαλεί την επιλογή δημιουργίας αντιγράφου ασφαλείας του αρχείου.
30) Γράψτε ένα πρόγραμμα που να εξηγεί καθαρά τον συμβολικό πίνακα.
Στην Perl, ο πίνακας συμβόλων είναι ένας κατακερματισμός που περιέχει τη λίστα όλων των ονομάτων που ορίζονται σε έναν χώρο ονομάτων και περιέχει όλες τις συναρτήσεις και τις μεταβλητές. Για παράδειγμα:
sub Symbols { my($hashRef) = shift; my(%sym); my(@sym); %sym = %{$hashRef}; @sym = sort(keys(%sym)); foreach (@sym) { printf("%-10.10s| %s\n", $_, $sym{$_}); } } Symbols(\%Foo::); package Foo; $bar = 2; sub baz { $bar++; }
31) Πώς μπορείτε να χρησιμοποιήσετε τις προειδοποιήσεις Perl και ποια είναι η σημασία της χρήσης τους;
Οι προειδοποιήσεις Perl είναι αυτές στις οποίες η Perl ελέγχει την ποιότητα του κώδικα που έχετε δημιουργήσει. Οι υποχρεωτικές προειδοποιήσεις υπογραμμίζουν προβλήματα στο στάδιο της λεξιλογικής ανάλυσης. Οι προαιρετικές προειδοποιήσεις επισημαίνουν περιπτώσεις πιθανής ανωμαλίας.
use warnings; # it is same as importing "all" no warnings; # it is same as unimporting "all" use warnings::register; if (warnings::enabled()) { warnings::warn("any warning"); } if (warnings::enabled("void")) { warnings::warn("void", "any warning"); }
32) Ποια πρόταση έχει παραστάσεις αρχικοποίησης, ελέγχου συνθήκης και προσαύξησης στο σώμα της; Γράψτε μια σύνταξη για να χρησιμοποιήσετε αυτήν την πρόταση.
for ($count = 10; $count >= 1; $count--) { print "$count "; }
33) Πώς μπορείτε να αντικαταστήσετε τους χαρακτήρες από μια συμβολοσειρά και να αποθηκεύσετε τον αριθμό των αντικαταστάσεων;
#!usr/bin/perl use strict; use warnings; my $string="APerlAReplAFunction"; my $counter = ($string =~ tr/A//); print "There are $counter As in the given string\n"; print $string;
34) Καταργήστε τα διπλά δεδομένα από το @array=(“perl”,”php”,”perl”,”asp”)
sub uniqueentr { return keys %{{ map { $_ => 1 } @_ }}; } @array = ("perl","php","perl","asp"); print join(" ", @array), "\n"; print join(" ", uniqueentr(@array)), "\n";
35) Πώς μπορούν οι πληροφορίες να τεθούν σε κατακερματισμό;
Όταν αναφέρεται μια τιμή κατακερματισμού, δεν δημιουργείται. Δημιουργείται μόνο όταν του εκχωρηθεί μια τιμή. Τα περιεχόμενα ενός κατακερματισμού δεν έχουν κυριολεκτική αναπαράσταση. Σε περίπτωση που ο κατακερματισμός πρόκειται να συμπληρωθεί αμέσως, πρέπει να γίνει ξετύλιγμα του κατακερματισμού. Το ξετύλιγμα του κατακερματισμού σημαίνει ότι τα ζεύγη τιμών κλειδιών σε κατακερματισμό μπορούν να δημιουργηθούν χρησιμοποιώντας μια λίστα, μπορούν επίσης να μετατραπούν από αυτήν. Σε αυτή τη διαδικασία μετατροπής τα ζυγά στοιχεία τοποθετούνται στα δεξιά και είναι γνωστά ως τιμές. Τα στοιχεία που τοποθετούνται στα αριστερά είναι με μονό αριθμό και αποθηκεύονται ως κλειδιά. Ο κατακερματισμός δεν έχει καθορισμένη εσωτερική παραγγελία και ως εκ τούτου ο χρήστης δεν πρέπει να βασίζεται σε κάποια συγκεκριμένη παραγγελία.
Παράδειγμα δημιουργίας κατακερματισμού:
%birthdate = ( Ram => "01-01-1985", Vinod => "22-12-1983", Sahil => "13-03-1989", Sony => "11-09-1991");
36) Γιατί τα ψευδώνυμα Perl θεωρούνται ταχύτερα από τις αναφορές;
Στην Perl, τα ψευδώνυμα θεωρούνται ταχύτερα από τις αναφορές επειδή δεν απαιτούν καμία αποαναφορά.
37) Πώς μπορεί να γίνει διαχείριση της μνήμης στο Perl;
Κάθε φορά που χρησιμοποιείται μια μεταβλητή στο Perl, καταλαμβάνει κάποιο χώρο στη μνήμη. Δεδομένου ότι ο υπολογιστής έχει περιορισμένη μνήμη, ο χρήστης πρέπει να προσέχει τη μνήμη που χρησιμοποιείται από το πρόγραμμα. Για παράδειγμα:
use strict; open(IN,"in"); my @lines = <IN> close(IN); open(OUT,">out"); foreach (@lines) { print OUT m/([^\s]+)/,"\n"; } close(OUT);
Κατά την εκτέλεση του παραπάνω προγράμματος, αφού διαβάσει ένα αρχείο θα εκτυπώσει την πρώτη λέξη κάθε γραμμής σε άλλο αρχείο. Εάν τα αρχεία είναι πολύ μεγάλα, τότε η μνήμη του συστήματος θα εξαντληθεί. Για να αποφευχθεί αυτό, το αρχείο μπορεί να χωριστεί σε ενότητες.
38) Πώς μπορείτε να δημιουργήσετε ανώνυμες υπορουτίνες;
sub BLOCK sub PROTO BLOCK sub ATTRS BLOCK sub PROTO ATTRS BLOCK
39) Τι εννοείτε με το πλαίσιο μιας υπορουτίνας;
Ορίζεται ως ο τύπος της τιμής επιστροφής που αναμένεται. Μπορείτε να χρησιμοποιήσετε μια μεμονωμένη συνάρτηση που επιστρέφει διαφορετικές τιμές.
40) Καταχωρίστε το πρόθεμα dereferencer στο Perl.
$-Scalar μεταβλητές
%-Μεταβλητές κατακερματισμού
@-συστοιχίες
&-υπορουτίνες
Ο τύπος globs-*myvar σημαίνει @myvar, %myvar.
41) Στη λειτουργική μονάδα CPAN, ονομάστε μια παρουσία που χρησιμοποιείτε.
Στο CPAN, τα CGI και DBI είναι πολύ κοινά πακέτα
42) Ποια είναι τα πλεονεκτήματα του c έναντι της Perl;
Υπάρχουν περισσότερα εργαλεία ανάπτυξης για το C παρά για το PERL. Το PERL εκτελείται πιο αργά από τα προγράμματα C. Η Perl φαίνεται να είναι μια διερμηνευμένη γλώσσα, αλλά ο κώδικας τηρείται αμέσως. Εάν δεν θέλετε οι άλλοι να χρησιμοποιούν τον κώδικά σας Perl, πρέπει να αποκρύψετε τον κώδικά σας με κάποιο τρόπο σε αντίθεση με το C. Χωρίς πρόσθετα εργαλεία είναι αδύνατο να δημιουργήσετε ένα εκτελέσιμο αρχείο ενός προγράμματος Perl.
43) "Οι κανονικές εκφράσεις Perl ταιριάζουν με τη μεγαλύτερη δυνατή συμβολοσειρά". Ποιο είναι το όνομα αυτού του αγώνα;
Ονομάζεται "άπληστος αγώνας" επειδή οι κανονικές εκφράσεις Perl ταιριάζουν συνήθως με τη μεγαλύτερη δυνατή συμβολοσειρά.
45) Πώς μπορείτε να καλέσετε μια υπορουτίνα και να αναγνωρίσετε μια υπορουτίνα;
Το "&myvariable" χρησιμοποιείται για την κλήση μιας υπο-ρουτίνας και το "&" χρησιμοποιείται για τον προσδιορισμό μιας υπο-ρουτίνας.
46) Ποια είναι η χρήση του συμβόλου '->';
Στην Perl, το σύμβολο '->' είναι ένας τελεστής παραπομπής infix. εάν η δεξιά πλευρά είναι δείκτης πίνακα, κλειδί κατακερματισμού ή υπορουτίνα, τότε η αριστερή πλευρά πρέπει να είναι αναφορά.
@array = qw/ abcde/; # array print "n",$array->[0]; # it is wrong print "n",$array[0]; #it is correct , @array is an array
47) Πού απαιτούμε «chomp» και τι σημαίνει;
Μπορούμε να εξαλείψουμε τον νέο χαρακτήρα γραμμής χρησιμοποιώντας το 'chomp'. Μπορεί να χρησιμοποιηθεί σε πολλά διαφορετικά σενάρια. Για παράδειγμα:
excuteScript.pl FstArgu. $argu = $ARGV[0]; chomp $argu; --> to get rid of the carrige return.
48) Τι σημαίνει το σύμβολο '$_';
Η "$_" είναι μια προεπιλεγμένη μεταβλητή στο Perl και η $_ είναι γνωστή ως "προεπιλεγμένος χώρος αντιστοίχισης εισόδου και μοτίβου
49) Ποια διεπαφή χρησιμοποιήθηκε στο PERL για σύνδεση στη βάση δεδομένων; Πώς συνδέεστε στη βάση δεδομένων στο Perl;
Μπορούμε να συνδεθούμε με βάση δεδομένων χρησιμοποιώντας μονάδα DBI στο Perl.
use DBI; my $dbh = DBI->connect('dbi:Oracle:orcl', 'username', 'password',)
50) Καταγράψτε τον τελεστή που χρησιμοποιείται στην Perl;
Operaτα tors που χρησιμοποιούνται στην Perl είναι
- Συνένωση συμβολοσειρών '.'
- Σύγκριση Operators ==, !=, >,< , >=
- λογικός Operators &&, ll , !
- Εκχώρηση Operators + = ,- + , *=
- Αύξηση και μείωση Operators ++,-
- Αριθμητική Operators +, – ,*
51) Εξηγήστε ποιο χαρακτηριστικό του PERL παρέχει δυνατότητα επαναχρησιμοποίησης κώδικα;
Για την παροχή δυνατότητας επαναχρησιμοποίησης κώδικα στο PERL χρησιμοποιείται η δυνατότητα κληρονομικότητας. Στο Inheritance, η θυγατρική κλάση μπορεί να χρησιμοποιήσει τις μεθόδους και την ιδιότητα της γονικής κλάσης.
52) Αναφέρετε τη διαφορά μεταξύ die και exit στο Perl;
Το Die θα εκτυπώσει ένα μήνυμα στο std err πριν τερματίσει το πρόγραμμα ενώ το Exit απλώς θα τερματίσει το πρόγραμμα.
53) Στην Perl, σε τι χρησιμοποιείται η συνάρτηση grep;
Για να φιλτράρετε τη λίστα και να επιστρέψετε μόνο εκείνα τα στοιχεία που ταιριάζουν με ορισμένα κριτήρια χρησιμοποιείται η συνάρτηση Perl grep.
54) Ποια είναι η σύνταξη που χρησιμοποιείται στη συνάρτηση Perl grep;
Η σύνταξη που χρησιμοποιείται στο Perl είναι
- grep ΛΙΣΤΑ αποκλεισμού
- grep (EXPR, LIST)
- ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ: Περιέχει μία ή περισσότερες δηλώσεις που οριοθετούνται με αγκύλες, η τελευταία πρόταση καθορίζει στο μπλοκ εάν το μπλοκ θα αξιολογηθεί ως true ή false.
- EXPR: Αντιπροσωπεύει οποιαδήποτε έκφραση που υποστηρίζει $, ιδιαίτερα μια τυπική έκφραση. Σε κάθε στοιχείο της λίστας, εφαρμόζεται έκφραση και εάν το αποτέλεσμα της αξιολόγησης είναι αληθές, το τρέχον στοιχείο θα προσαρτηθεί στη λίστα που επιστρέφεται
- ΛΙΣΤΑ: Είναι μια λίστα στοιχείων ή ένας πίνακας
55) Εξηγήστε τι είναι τα βαθμωτά δεδομένα και οι βαθμωτές μεταβλητές στο Perl;
Scalar στο Perl σημαίνει μια μεμονωμένη οντότητα όπως ένας αριθμός ή μια συμβολοσειρά. Έτσι, το Java Η έννοια του int, float, double και η συμβολοσειρά ισούται με βαθμωτό perls και οι αριθμοί και οι συμβολοσειρές είναι ανταλλάξιμα. Ενώ η βαθμωτή μεταβλητή χρησιμοποιείται για την αποθήκευση βαθμωτών δεδομένων. Χρησιμοποιεί το σύμβολο $ και ακολουθείται από έναν ή περισσότερους αλφαριθμητικούς χαρακτήρες ή υπογράμμιση. Είναι διάκριση πεζών-κεφαλαίων.
56) Τι σημαίνει το σύμβολο -> στο Perl;
Στην Perl, το σύμβολο βέλους – > χρησιμοποιείται για τη δημιουργία ή την πρόσβαση σε ένα συγκεκριμένο αντικείμενο μιας κλάσης.
57) Αναφέρετε με πόσους τρόπους μπορείτε να εκφράσετε τη συμβολοσειρά στο Perl;
Μπορείτε να εκφράσετε τη συμβολοσειρά στο Perl με πολλούς τρόπους
Για παράδειγμα "αυτό είναι γκουρού99."
- qq/αυτό είναι guru99 σαν συμβολοσειρά με διπλά εισαγωγικά/
- qq^αυτό είναι guru99 σαν συμβολοσειρά με διπλά εισαγωγικά^
- q/αυτός είναι γκουρού99/
- q&αυτό είναι γκουρού99&
- q (αυτός είναι γκουρού99)
58) Εξηγήστε τις δηλώσεις ΧΡΗΣΗΣ και ΑΠΑΙΤΗΣΕΩΝ;
- Δήλωση REQUIRE: Χρησιμοποιείται για την εισαγωγή συναρτήσεων με καθολικό εύρος έτσι ώστε τα αντικείμενα και οι συναρτήσεις τους να είναι προσβάσιμα απευθείας
Παράδειγμα: Απαιτείται ενότητα,
Var=module::method(); //μέθοδος που καλείται με την αναφορά της ενότητας
- Οι εντολές USE ερμηνεύονται και εκτελούνται κατά την ανάλυση, ενώ κατά τη διάρκεια του χρόνου εκτέλεσης εκτελούνται οι δηλώσεις απαίτησης.
Παράδειγμα: Χρησιμοποιήστε το Module
Var=μέθοδος(); Η //μέθοδος μπορεί να κληθεί απευθείας
59) Εξηγήστε τι κάνει η λειτουργία Chop & Chomp;
- Λειτουργία κοπής εξαλείφει τον τελευταίο χαρακτήρα από το expr, κάθε στοιχείο της λίστας
- Λειτουργία Chomp εξαλείφει τον τελευταίο χαρακτήρα από ένα expr ή κάθε στοιχείο της λίστας εάν ταιριάζει με την τιμή $/. Θεωρείται καλύτερο από το chop καθώς αφαιρεί τον χαρακτήρα μόνο αν υπάρχει ταίριασμα.
60) Αναφέρετε τι είναι το CPAN;
CPAN σημαίνει Comprehensive Perl Archive Network, μια μεγάλη συλλογή λογισμικού και τεκμηρίωσης Perl.
61) Εξηγήστε τι είναι ο Πολυμορφισμός στο Perl;
Στην Perl, Polymorphism σημαίνει ότι οι μέθοδοι που ορίζονται στη βασική κλάση θα υπερισχύουν πάντα των μεθόδων που ορίζονται στη μητρική κλάση.
62) Αναφέρετε ποιοι είναι οι δύο τρόποι για να αποκτήσετε ιδιωτικές τιμές μέσα σε μια υπορουτίνα ή μπλοκ;
Υπάρχουν δύο τρόποι με τους οποίους μπορούν να ληφθούν ιδιωτικές τιμές μέσα σε μια υπορουτίνα ή μπλοκ
- τοπικός Operaβραχώδης κορυφή: Σε καθολικές μεταβλητές μόνο αυτός ο χειριστής μπορεί να λειτουργήσει. Η τιμή της ιδιωτικής μεταβλητής αποθηκεύεται στο τοπικός OperaTor και προβλέπει την επαναφορά τους στο τέλος του μπλοκ
- My Operaβραχώδης κορυφή: Για να ορίσετε ή να δημιουργήσετε μια νέα μεταβλητή μπορεί να χρησιμοποιηθεί αυτός ο τελεστής. Μεταβλητή που δημιουργείται από My OperaTor θα δηλώνεται πάντα απόρρητο για αποκλεισμό εντός του οποίου ορίζεται.
63) Εξηγήστε τι είναι τα STDIN, STDOUT και STDERR;
- STDIN: Η λαβή αρχείου STDIN χρησιμοποιείται για ανάγνωση από το πληκτρολόγιο
- STDOUT: Χρησιμοποιείται για εγγραφή στην οθόνη ή σε άλλο πρόγραμμα
- STDERR: Χρησιμοποιείται επίσης για εγγραφή σε οθόνη. Το STDERR είναι μια τυπική ροή σφαλμάτων που χρησιμοποιείται στο Perl.
64) Τι είναι το κλείσιμο στο PERL;
Το κλείσιμο είναι ένα μπλοκ κώδικα που χρησιμοποιείται για την καταγραφή του περιβάλλοντος όπου έχει οριστεί. Καταγράφει ιδιαίτερα οποιεσδήποτε λεξιλογικές μεταβλητές από τις οποίες αποτελείται το μπλοκ και χρησιμοποιεί σε έναν εξωτερικό χώρο.
65) Εξηγήστε τι είναι το Perl one liner;
Μια γραμμή είναι ένα πρόγραμμα γραμμής εντολών και μπορεί να εκτελεστεί αμέσως από τη γραμμή εντολών.
Για παράδειγμα,
# run program under the debugger perl-d my_file
66) Εξηγήστε τι είναι το lvalue;
Μια lvalue είναι μια κλιμακωτή τιμή που μπορεί να χρησιμοποιηθεί για την αποθήκευση του αποτελέσματος οποιασδήποτε έκφρασης. Συνήθως, εμφανίζεται στην αριστερή πλευρά της έκφρασης και αντιπροσωπεύει ένα χώρο δεδομένων στη μνήμη.
67) Εξηγήστε ποια είναι η συνάρτηση που χρησιμοποιείται για να προσδιορίσει πόσοι χαρακτήρες υπάρχουν σε μια συμβολοσειρά;
Για να πείτε πόσοι χαρακτήρες υπάρχουν σε μια συμβολοσειρά, μήκος () χρησιμοποιείται η λειτουργία.
68) Εξηγήστε τι είναι το prefix dereferencer και απαριθμήστε τα;
Χρησιμοποιώντας ένα συγκεκριμένο πρόθεμα όταν αποαναφέρετε μια μεταβλητή, ονομάζονται αποαναφορά προθέματος.
- $ - Βαθμωτές μεταβλητές
- %-Μεταβλητές κατακερματισμού
- @-Πίνακες
- &-Υπορουτίνες
- Ο τύπος globs-*myvar σημαίνει @myvar, %myvar
69) Εξηγήστε ποια είναι η συνάρτηση της Επιστρεφόμενης Αξίας;
Η συνάρτηση Return Value επιστρέφει μια αναφορά σε ένα αντικείμενο που έχει ευλογηθεί στο CLASSNAME.
Κουίζ πιστοποίησης Perl
Αυτές οι ερωτήσεις Perl MCQ θα σας βοηθήσουν με την αυτοαξιολόγηση και την προετοιμασία για την εξέταση πιστοποίησης Perl. Κάντε αυτό το δωρεάν online Quiz Perl που περιέχει MCQ για να δοκιμάσετε τις γνώσεις σας για την Perl.
Αυτές οι ερωτήσεις συνέντευξης θα βοηθήσουν επίσης στο viva (προφορικά) σας.