in reply to Re: writing each array element to a unique file
in thread writing each array element to a unique file
Since you mentioned that you're new to Perl and programming in general, let me explain this line by line. I've been working introductory tutorials for work, so I figure this is good practice. My apologies if you already know some of these.
use strict; use warnings;
These two lines are called "pragmas" and make your program less tolerant of sloppy code. You should start every Perl program with these two lines.
use FileHandle;
Use the built-in FileHandle module, which allows you to treat file handles (variables in the program that represent files) as objects (a programming construct that allows you to treat a variable as a self-contained entity with properties and "things it can do", also called methods).
for (my $i = 0; $i < @myArr; $i++) {
Create a new variable called $i, make it equal to 0. Repeat the following section (the section down to the matching '}') as long as the value of $i is less than the number of elements in the @myArr array. After finishing each loop, increment $i and do the test again.
# set $value to the value held in the array position we're on my $value = $myArr[$i]; # set $index to one more than our current array position my $index = $i + 1; #create our filename - when i = 0, it will be "file1" my $file = "file${index}"; write_value_to_file($value, $file); # call our function below with our current value and filename } # end the for block
Now we'll look at the function (or subroutine) write_value_to_file:
#we're starting a new subroutine sub write_value_to_file { # set two variables from the values given to this function my ($value, $fname) = @_; #create a new FileHandle object my $fh = new FileHandle; # open the file name in $fname for writing, and refer to it by $fh open ($fh, ">", $fname) # if opening the file failed, tell the user why and exit or die "unabel to write $fname($!)\N" #write the value, followed by a newline character, to the file print $fh "$val\n"l # tell the program we're done with this file. close $fh; #close the function }
Hopefully this was at least a little helpful.
UPDATED: mention $i++. Thanks johngg!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: writing each array element to a unique file
by johngg (Canon) on Dec 15, 2006 at 10:35 UTC | |
|
Re^3: writing each array element to a unique file
by garbage777 (Acolyte) on Dec 18, 2006 at 03:49 UTC |