5. File Input/Output
By now you are probably wondering how perl can be used to interact with the external world, and this is where File Input/Output enters the frame.
In Perl, file I/O is handled by using sessions: you are opening a file for reading or writing (or both), do with it what you want, and then close it. In Perl, filehandles implemented as the so-called globs are placed on a separate namespace than that of the variables. It is generally marked with a starting asterik (*), which can be omitted if the first letter is a capital one.
To open a file use the open my $my_file_handle, $mode, $file_path; notation, and to close a file use the close($my_file_handle); notation. The $mode determines whether the file will be open for reading, writing, appending or some of them. The following table should give you a quick reference:
> | Writing (the original file will be erased before the function starts). |
< (or nothing) | Reading |
>> | Appending (the file pointer will start at the end and the file will not be overriden) |
+< | Read-write, or just write without truncating. |
$file_path is the pathname of the file to open relative to the script current working directory (CWD). For instance, the command open I, "<", "../hello.txt"; opens the file "hello.txt" found a directory above the current directory for reading.