English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
All categories

Say my code is:
# PRO1.pl
open (MYFILE, 'data.txt');
while () {
chomp;
print "$_\n";
}
close (MYFILE);

But I want to run all these from this PRO1.pl program

$ perl PRO1.pl part1.txt
$ perl PRO1.pl part2.txt
$ perl PRO1.pl part3.txt

What do I change 'data.txt' so I can use any text file with this program.

I know I can be change it to a variable
$fileName='data.txt'
open (MYFILE, $fileName);

But how do I get a parameter into the program so that it will open the parameter file and not the variable file.

2007-03-21 08:33:24 · 3 answers · asked by Magician 1 in Computers & Internet Programming & Design

3 answers

@ARGV is your friend! it has all the parameters to a command line perl program !

so $ARGV[0] is equal to part1.txt or other file names!

2007-03-21 09:11:48 · answer #1 · answered by jake cigar™ is retired 7 · 1 0

One solution would be to create a file containing the names of files to be processed by the program. The data file used as a parm on the command line would provide the program with a list of files to be processed. Open that file, read the names of the files into an array, close the file, and then open and process the files named in the array.

2007-03-21 08:49:19 · answer #2 · answered by rknoblock 3 · 0 2

the previous individual had a solid answer. The "." potential any character and the "+" potential a million or extra characters. The . is seen a grasping trend matching image. putting the () will placed the matched call in $a million. Use a loop to flow interior the direction of the array.

2016-10-19 06:48:40 · answer #3 · answered by ? 4 · 0 0

fedest.com, questions and answers