Πολλές φορές είναι πιο εύκολο να δηλώνουμε από τη γραμμή εντολών ποια είναι τα δεδομένα που θέλουμε να διαχειριστεί το πρόγραμμά μας. Στο ακόλουθο παράδειγμα δηλώνουμε τα αρχεία που θέλουμε να χρησιμοποιήσει η εφαρμογή μας με αυτό τον τρόπο:
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