[eeei.gr Logo]
Επικοινωνία
Ταυτότητα
Μαθήματα Internet | Μαθήματα Προγραμματισμού | Net Business | Τα νέα του Internet | Ο Κόσμος του Αύριο

Ένα απλό configuration file

Πολλές φορές χρειάζεται να διαβάσουμε και να χρησιμοποιήσουμε δεδομένα που υπάρχουν σε κάποιο configuration file. Για παράδειγμα, μπορεί έχουμε έναν πίνακα αποδεκτών και να θέλουμε να στείλουμε σε αυτούς κάποιο email. Τα στοιχεία των πελατών μπορούν να βρίσκονται σε ένα απλό text file που θα μοιάζει με το ακόλουθο:

Γιώργος---#---Επιτήδειος---#---gepiti@gepiti.com---#---Ιστιοπλόος

Σοφία---#---Επιτηδείου---#---sophia@gepiti.com---#---Αδερφή του Γιώργου

Ματίνα Ειρήνη---#---Παπαδοπούλου---#---matina@kati.com---#---Φίλη του Γιώργου

Κάθε γραμμή αποτελείται από ένα άτομο και τα μεταξύ τους στοιχεία χωρίζονται με το ---#--- δηλαδή το ---#--- είναι ο delimiter μας. Θα μπορούσαμε να επιλέξουμε όποιο delimiter θέλουμε (ακόμη και το κενό διάστημα). Εγώ όμως προτίμησα κάτι που να μην υπάρχει πουθενά ώστε να μην μπερδέψω την Perl και κάνει λάθη στο «κόψιμο» (για παράδειγμα αν επέλεγα το κενό θα είχε πρόβλημα στα σχόλια, π.χ. «Αδερφή του Γιώργου» ή στα διπλά ονόματα π.χ. «Ματίνα Ειρήνη»

Αφού έχω έτοιμο το αρχείο, δημιουργώ τώρα την εφαρμογή που θα το διαβάσει:

open (MAILDATA, "$mail_file") || die "can't open file:$!";

Ανοίγουμε το αρχείο που βρίσκεται στη θέση την οποία έχουμε υποδηλώσει ήδη στη μεταβλητή $mail_file (π.χ.

my $mail_file = '/mnt/win_d/my_personal_documents/linuxbak/mail_data.txt')

while (<MAILDATA>)

{

Δηλαδή για κάθε γραμμή του αρχείου

my @mail_config = split (/---#---/,$_);

δημιούργησε μια λίστα που θα έχει ως τιμές τα περιεχόμενα της γραμμής. Θα καταλάβεις πότε αλλάζει η τιμή από την ακολουθία ---#---

my $mail_to_get = $mail_config[2];

push (@mails_to_get, $mail_to_get);

Πάρε την τρίτη τιμή (στις arrays αρχίζουμε να μετράμε από το 0) και βάλε την σε μια νέα array (την (@mails_to_get).

}

close (MAILDATA);

Με τον τρόπο αυτό έχουμε πλέον μια νέα array που περιέχει τις τιμές:

gepiti@gepiti.com

sophia@gepiti.com

matina@kati.com

Φυσικά για να λειτουργήσει αυτό το σύστημα όλες οι τιμές πρέπει να είναι συμπληρωμένες και να μην υπάρχουν κενά. (Κάθε γραμμή θα είναι πλήρης.)

Επίσης, το τέλος κάθε γραμμής δεν πρέπει να περιέχει carriage return (Enter) ή αλλαγή γραμμής γιατί τότε η τιμή που θα λάβει η Perl θα είναι:

Αδερφή του Γιώργου\n ή (\r) αντί για Αδερφή του Γιώργου με αποτέλεσμα να λειτουργούμε με διαφορετικές τιμές από εκείνες που θέλουμε. Γι' αυτό καλύτερα το configuration file να έχει τη μορφή:

Ματίνα Ειρήνη---#---Παπαδοπούλου---#---matina@kati.com---#---Φίλη του Γιώργου---#---


Τρέχουσα Ενότητα: Perl


 

Φιλικά - συνεργαζόμενα sites: Left Handed Products


© Eeei.gr 2009