banbanbai 发表于 2015-12-27 13:10:10

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 r
Read Only Access


> or w
Creates, Writes, and Truncates


>> or a
Writes, 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_RDWR
Read and Write


O_RDONLY
Read Only


O_WRONLY
Write Only


O_CREAT
Create the file


O_APPEND
Append the file


O_TRUNC
Truncate the file


O_EXCL
Stops if file already exists


O_NONBLOCK
Non-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
  
页: [1]
查看完整版本: Perl文件读写