This function closes the file, socket, or pipe associated with the filehandle.
You don't have to close
if you are immediately going to do
on it, since the next
will close it for
.) However, an explicit
on an input file
resets the line counter (
), while the implicit close done by
Also, closing a pipe will wait for the process executing on the pipe
to complete (in case you want to look at the output of the pipe
afterward), and it prevents the script from exiting before the pipeline is
Closing a pipe explicitly also puts the status value of the command
executing on the pipe into
open OUTPUT, '|sort >foo'; # pipe to sort
... # print stuff to output
close OUTPUT; # wait for sort to finish
die "sort failed" if $?; # check for sordid sort
open INPUT, 'foo'; # get sort's results
may be an expression whose value gives the real filehandle name.
It may also be a reference to a filehandle object returned by some of
the newer object-oriented I/O packages.