Perl | Writing to a File

07 Mar, 2019
A filehandle is a variable that is used to read and write to a file. This filehandle gets associated with the file.
In order to write to the file, it is opened in write mode as shown below:
open (FH, ‘>’, “filename.txt”);
If the file is existing then it truncates the old content of file with the new content. Otherwise a new file will be created and content will be added.
print() function is used to write content to a file.
Syntax: print filehandle string
Here, filehandle is associated to the file at the time of opening the file and string holds the content to be written to the file.
Example :
# Opening file Hello.txt in write modeopen (fh, ">", "Hello.txt");  # Getting the string to be written# to the file from the userprint "Enter the content to be added\n";$a = <>;  # Writing to the fileprint fh $a;  # Closing the fileclose(fh) or "Couldn't close the file"; 
Before Writing to File:
Executing Code to Write:
Updated File:
Here is how the program works:Step 1: Opening file Hello.txt in write mode.Step 2: Getting the text from the standard input keyboard.Step 3: Writing the string stored in ‘$a’ to the file pointed by filehandle ‘fh’Step 4: Closing the file. Copying Content from one file to another:
Before Code Execution:Source File:Destination File:
Example :Example below reads the content from the source file and writes it to destination file.
# Source File $src = 'Source.txt';  # Destination File$des = 'Destination.txt';  # open source file for readingopen(FHR, '<', $src);   # open destination file for writingopen(FHW, '>', $des);    print("Copying content from $src to $des\n");while(<FHR>){   print FHW $_; }   # Closing the filehandlesclose(FHR);close(FHW);   print "File content copied successfully!\n";
Executing Code:
Updated Destination File:
Here is how the program works:-Step 1: Opening 2 files Source.txt in read mode and Destination.txt in write mode.Step 2: Reading the content from the FHR which is filehandle to read content while FHW is a filehandle to write content to file.Step 3: Copying the content with the use of print function.Step 4: Close the conn once reading file is done. 
There are two ways in which Errors can be handled
Throw an exception if file cannot be opened (Handling an error)
Give a warning if file cannot be opened and continue running (Error reporting)
Throw an Exception (Using Die Function)When filehandle could not be assigned a valid file pointer at that time die gets executed printing the message and kills the current program.Example :
# Initializing filename  $filename = 'Hello.txt'; # $filename = 'ello.txt';  # Prints an error and exits # if file not found open(fh, '<', $filename) or      die "Couldn't Open file $filename"; 
In the above code when File exists it simply gets executed with no errors but if file doesn’t exists then it generates an error and code terminates.
Give a warning (Using warn function)When filehandle could not be assigned a valid file pointer it just prints warning message using warn function and keeps running.Example :
# Initializing filename $filename = 'GFG.txt';   # Opening a file and reading content if(open(fh, '<', $filename)) {     while(<fh>)     {         print $_;     } }   # Executes if file not found else{   warn "Couldn't Open a file $filename"; } 
When File exists:
When File doesn’t exists:
Perl-files
Picked
Perl
Perl
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Perl | split() Function
Perl | push() Function
Perl | chomp() Function
Perl | substr() function
Perl | grep() Function
Perl | exists() Function
Perl Tutorial - Learn Perl With Examples
Perl | length() Function
Perl | Subroutines or Functions
Use of print() and say() in Perl