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

Λήψη δεδομένων από το prompt - η @ARGV

Πολλές φορές είναι πιο εύκολο να δηλώνουμε από τη γραμμή εντολών ποια είναι τα δεδομένα που θέλουμε να διαχειριστεί το πρόγραμμά μας. Στο ακόλουθο παράδειγμα δηλώνουμε τα αρχεία που θέλουμε να χρησιμοποιήσει η εφαρμογή μας με αυτό τον τρόπο:

perl test.pl test1.txt test2.txt test3.txt

Η Perl θα πάρει το περιεχόμενο των αρχείων test1.txt, test2.txt και test3.txt για να το χρησιμοποιήσει όπως ορίζει το πρόγραμμα test.pl. Ο σχετικός κώδικας είναι:

my $input_from_files;

while (defined($input_from_files = <>))

{

print "$input_from_files\n";

}

Το <> δηλώνει στην Perl ότι θα ασχοληθεί με τα περιεχόμενα των αρχείων που δηλώθηκαν στο prompt. Κάθε γραμμή κάθε αρχείου τοποθετείται στο $input_from_files και τα περιεχόμενά της υπόκεινται στις εντολές του block που ακολουθεί (εδώ μια απλή εκτύπωση). Η συνάρτηση defined υπάρχει απλώς για να σταματάει η Perl όταν δεν υπάρχουν άλλα περιεχόμενα στο αρχείο. Πιο σύντομα αυτό μπορεί να γραφτεί και:

while (<>)

{print;}

Αυτό που γίνεται print είναι φυσικά η $_.

Πώς όμως η Perl γνωρίζει τι γράψαμε εμείς στο prompt; Το καταλαβαίνει επειδή ό,τι γράψουμε μετά το perl program_name.pl αποθηκεύεται αυτόματα στη μεταβλητή @ARGV απ’ όπου και μπορούμε να το λάβουμε και χρησιμοποιήσουμε.

#!usr/bin/perl -w

use strict;

print "@ARGV\n";

print "$ARGV[0]\n";

Ο παραπάνω κώδικας εκτυπώνει ολόκληρο το περιεχόμενο της @ARGV, ενώ στην επόμενη γραμμή εκτυπώνεται το περιεχόμενο του πρώτου argument. Για παράδειγμα, εγώ έδωσα:

perl test2.pl 153 154 155

και η εκτύπωση ήταν:

153 154 155

153


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


 

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


© Eeei.gr 2009