Skip to main content

How to resolve : print() on closed filehandle in perl

How to resolve : print() on closed filehandle in perl

Error "print() on closed filehandle" generated in the following condition ( it is on of possible cause of it)

-------------------------- BEGIN Code ---------------------------------------
my $inputFile = '/this/is/path/of/your/input/file.txt';
open(MYINPUTFILE, ">","$inputFile");
print MYINPUTFILE "any data";
close(MYINPUTFILE);
-------------------------- END Code ---------------------------------------

here if you don't have permission to access the path '/this/is/path/of/your/input/file.txt' or the path (of parent directory) does not exist then it will throuw the error : print() on closed filehandle

To resolve this better to make practice as follow while opening the file:

-------------------------- BEGIN Code ---------------------------------------
open(MYINPUTFILE, ">","$inputFile") or die "ERROR ::: unable access the file";
-------------------------- END Code ---------------------------------------

So it won't executes the lines after the open file if there is issue in opening file, else it will execute the following lines and gives the error where you tries to access the File.


Comments

Popular posts from this blog

Could not launch the product because the associated workspace is currently in use by another Eclipse application

If you are seeing following error at the beginning of the Eclipse or any RCP based product then here is the solution: Error Message: "Could not launch the product because the associated workspace is currently in use by another Eclipse application." or “Workspace in use or cannot be created chose a different one.” Solution :  go to workspace location remove file <workspace location>/.metadata/.lock Reason: Through eclipse, user can create multiple Workspace locations. One Workspace location can be edited by one user at a time. A workspace contains the data related to various project configuration and local file storage. To avoid multiple users to access the same workspace, eclipse is maintaining a ".lock" file inside the Workspace. Eclipse will remove this ".lock" file when you will close the Eclipse. But in some cases, the Eclipse will crash due to some error, due to which it could not able to remove ".lock" file from...

Cannot complete the install because one or more required items could not be found.

Error While installing Maven in Eclipse Cannot complete the install because one or more required items could not be found.   Software being installed: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature. feature.group 1.4.0.20130601-0317)   Missing requirement: Maven POM XML Editor 1.4.0.20130601-0317 (org.eclipse.m2e.editor.xml 1.4.0.20130601-0317) requires 'bundle org.slf4j.api 1.6.2' but it could not be found   Cannot satisfy dependency:     From: Maven Integration for Eclipse (Editors) 1.4.0.20130601-0317 (org.eclipse.m2e.editor 1.4.0.20130601-0317)     To: bundle org.eclipse.m2e.editor.xml [1.4.0,1.5.0)   Cannot satisfy dependency:     From: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature. feature.group 1.4.0.20130601-0317)     To: org.eclipse.m2e.editor [1.4.0.20130601-0317] Solution : 1. Goto : Help -> Install New Software 2. Ad...

how to install window builder in eclipse ?

Before we start working on Eclipse RCP we required the Window builder. Windows builder is not necessary to create the Eclipse RCP application. Using Windowbuilder, designing the RCP application will be more easy and comfortable, so Here I explain the steps to install Window Builder inEclipse environment. It is very easy to add Windw builder plug-in in it. Following are the steps. Goto “help” -> “Install New Software…” Enter following URLs as per the version of the Eclipse : Eclipse 3.7 (Indigo) http://dl.google.com/eclipse/inst/d2wbpro/latest/3.7 Eclipse 3.6 (Helios) http://dl.google.com/eclipse/inst/d2wbpro/latest/3.6 Eclipse 3.5 (Galileo) http://dl.google.com/eclipse/inst/d2wbpro/latest/3.5 Click on “Next” Click on “Next” Select radio button for “I accept the terms of the license agreements”. Click on Finish. At the end (after installation completes), it will ask to restart the Eclipse. Click on Restart option...