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
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 :
open (fh, ">" , "Hello.txt" );
print "Enter the content to be added\n" ;
$a = <>;
print fh $a ;
close (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.
$src = 'Source.txt' ;
$des = 'Destination.txt' ;
open (FHR, '<' , $src );
open (FHW, '>' , $des );
print ( "Copying content from $src to $des\n" );
while (<FHR>)
{
print FHW $_ ;
}
close (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.
Error Handling and Error Reporting
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 :
$filename = 'Hello.txt' ;
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 :
$filename = 'GFG.txt' ;
if ( open (fh, '<' , $filename ))
{
while (<fh>)
{
print $_ ;
}
}
else
{
warn "Couldn't Open a file $filename" ;
}
|
When File exists:

When File doesn’t exists:

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
07 Mar, 2019
Like Article
Save Article