open#
Synopsis#
open(my $fh, '<', $filename); # read
open(my $fh, '>', $filename); # write (truncate)
open(my $fh, '>>', $filename); # append
open(my $fh, '+<', $filename); # read/write
open(my $fh, '|-', @cmd); # pipe to command
open(my $fh, '-|', @cmd); # pipe from command
open(my $fh, '>&', $other_fh); # dup for writing
open(my $fh, '<', \$scalar); # in-memory I/O
open(FH, "<$filename"); # 2-arg form
Description#
Opens a file, pipe, or duplicates a file descriptor, associating it with a filehandle.
Supports both the 2-argument form (mode embedded in the filename string) and the 3-argument form (separate mode and filename). The 3-argument form is preferred as it avoids shell metacharacter issues.
Mode |
Meaning |
|---|---|
|
Read |
|
Write (truncate) |
|
Append |
|
Read/write (existing file) |
|
Write/read (truncate) |
|
Pipe to command |
|
Pipe from command |
|
Dup filehandle |
|
Dup by file descriptor number |
In-memory I/O is supported via scalar references:
open $fh, '>', \$buf.
Returns 1 on success, undef on failure. Sets $! on error.
See also#
close, binmode, print, read, sysopen, perlopentut