Perl文件读写

Perl File Handling: open, read, write and close files

#====================

Opening files

Solution 1:

Opening a file in perl

open FILE, "filename.txt" or die $!; # read

open FILEHANDLE, MODE, EXPR

The available modes are the following:

modeoperandcreatetruncate
read<
write>
append>>

Each of the above modes can also be prefixed with the + character to allow for simultaneous reading and writing.

modeoperandcreatetruncate
read/write+<
read/write+>
read/append+>>

open FILE, ">", "filename.txt" or die $! #write

open FILE, ">filename.txt" or die $!; #write

Solution 2:

#!/usr/bin/perl

open(FILE, "<file.txt") or die "Couldn't open file file.txt, $!";

while(<FILE>){
   print "$_";
}

Following is the table which gives possible values of different modes

EntitiesDefinition
< or rRead Only Access
> or wCreates, Writes, and Truncates
>> or aWrites, Appends, and Creates
+< or r+Reads and Writes
+> or w+Reads, Writes, Creates, and Truncates
+>> or a+Reads, Writes, Appends, and Creates

Solution 3:

sysopen(FILE, "file.txt", O_RDWR|O_TRUNC );

Following is the table which gives possible values of MODE

EntitiesDefinition
O_RDWRRead and Write
O_RDONLYRead Only
O_WRONLYWrite Only
O_CREATCreate the file
O_APPENDAppend the file
O_TRUNCTruncate the file
O_EXCLStops if file already exists
O_NONBLOCKNon-Blocking usability

#====================

Reading files

read a text file line-by-line

my @lines = <FILE>;

while (<FILE>) { print $_; }

while (my $line = <FILE>) { ...}

read a file only a few characters at a time

open FILE, "picture.jpg" or die $!; # read

binmode FILE;

my ($buf, $data, $n);

while (($n = read FILE, $data, 4) != 0)

{ print "$n bytes read\n"; $buf .= $data; }

close(FILE);

#====================

Writing files

open FILE, ">file.txt" or die $!; #write

print FILE $str;

close FILE;

#====================

Closing files

open FILE1, "file.txt" or die $!; # read

open FILE2, "picture.jpg" or die $!; # read

...

close FILE2;

close FILE1;

#====================

REF:

http://www.perlfect.com/articles/perlfile.shtml