Διαδρομές
/
Perl
Perl
/
Ύλη
/
Αναφορές
Αν

Αναφορές σε Perl

9 ασκήσεις

Σχετικά με την έννοια Αναφορές

Η κατανόηση των αναφορών είναι θεμελιώδες στοιχείο για την αποτελεσματική χρήση της Perl. Καθώς οι αναφορές είναι βαθμωτές τιμές, και οι πίνακες και τα hash μπορούν να περιέχουν μόνο βαθμωτές τιμές, οι αναφορές είναι απαραίτητες για να εμφωλεύσεις αυτές τις δομές δεδομένων.

Μπορείς να δημιουργήσεις αναφορές για υπάρχουσες μεταβλητές και υπορουτίνες χρησιμοποιώντας τον τελεστή backslash \:

  • \$scalar για να δημιουργήσεις μια αναφορά σε βαθμωτή τιμή (αυτή μπορεί να είναι οποιαδήποτε βαθμωτή τιμή, π.χ. \1, όχι μόνο μια μεταβλητή).
  • \@array για να δημιουργήσεις μια αναφορά σε πίνακα.
  • \%hash για να δημιουργήσεις μια αναφορά σε hash.
  • \&sub για να δημιουργήσεις μια αναφορά κώδικα.

Μπορείς επίσης να δημιουργήσεις αυτό που ονομάζεται ανώνυμη αναφορά για πίνακες, hash και υπορουτίνες:

  • ['Alice', 'Bob', 'Charlie'] για να δημιουργήσεις μια ανώνυμη αναφορά σε πίνακα.
  • {foo => 'a', bar => 'b', baz => 'c'} για να δημιουργήσεις μια ανώνυμη αναφορά σε hash.
  • sub { return 1 } για να δημιουργήσεις μια ανώνυμη αναφορά κώδικα.

ΠΡΟΣΟΧΗ: Τα άγκιστρα στην Perl μπορεί να είναι διφορούμενα σε ορισμένα πλαίσια. Αν δεν παίρνεις την αναφορά σε hash που περιμένεις, πρόσθεσε ένα συν μπροστά για να το ξεκαθαρίσεις, π.χ. +{}. Δες τα Άγκιστρα για περισσότερες πληροφορίες.

Μπορείς να προσπελάσεις τις αναφορές χρησιμοποιώντας τον τελεστή βέλους ->:

  • $ref->[0] για να προσπελάσεις ένα στοιχείο μέσα σε μια αναφορά σε πίνακα.
  • $ref->{foo} για να προσπελάσεις μια τιμή μέσα σε μια αναφορά σε hash.
  • $ref->($arg) για να καλέσεις μια υπορουτίνα μέσω μιας αναφοράς κώδικα.

Δεδομένα μέσα σε πολύπλοκες δομές δεδομένων, όπως πολυδιάστατοι πίνακες και εμφωλευμένα hash, μπορείς να τα προσπελάσεις αλυσιδώνοντας θέσεις, π.χ. $ref->{foo}[0]{bar} (το ίδιο με $ref->{foo}->[0]->{bar}).

Αν θέλεις να κάνεις αποαναφορά ολόκληρου πίνακα ή hash, μπορείς να χρησιμοποιήσεις τον τελεστή βέλους ακολουθούμενο από @* ή %* αντίστοιχα, π.χ. $ref->@* ή $ref->%*. Μπορείς επίσης να πάρεις τμήματα ενός πίνακα ή μιας αναφοράς σε hash αντικαθιστώντας το * με μια θέση, π.χ. $ref->@[0..2] ή $ref->@{'Foo', 'Bar'}. Για τα τμήματα, η παραλλαγή του sigil ισχύει εδώ με τον ίδιο τρόπο όπως και με τις μεταβλητές πίνακα και hash.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Αναφορές

Η εξάσκηση είναι κλειδωμένη

Ξεκλείδωσε 8 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Αναφορές