Dec 23, 2010

File Test Operators in PERL

File Test Operators in PERL:

                  Perl has many operators that you can use to test different aspects of a file. For example, you can use the -e operator to ensure that a file exists before deleting it. Or, you can check that a file can be written to before appending to it. By checking the feasibility of the impending file operation, you can reduce the number of errors that your program will encounter.

A complete list of the operators:




Operator Description
-A OPERAND Returns the access age of OPERAND when the program started.
-b OPERAND Tests if OPERAND is a block device.
-B OPERAND Tests if OPERAND is a binary file. If OPERAND is a file handle,
then the current buffer is examined, instead of the file itself.
-c OPERAND Tests if OPERAND is a character device.
-C PERAND Returns the inode change age of OPERAND when the program started.
-d OPERAND Tests if OPERAND is a directory.
-e OPERAND Tests if OPERAND exists.
-f OPERAND Tests if OPERAND is a regular file as opposed to a directory,
symbolic link or other type of file.
-g OPERAND Tests if OPERAND has the setgid bit set.
-k OPERAND Tests if OPERAND has the sticky bit set.
-l OPERAND Tests if OPERAND is a symbolic link. Under DOS,
this operator always will return false.
-M OPERAND Returns the age of OPERAND in days when the program started.
-o OPERAND Tests if OPERAND is owned by the effective uid.
Under DOS, it always returns true.
-O OPERAND Tests if OPERAND is owned by the read uid/gid.
Under DOS, it always returns true.
-p OPERAND Tests if OPERAND is a named pipe.
-r OPERAND Tests if OPERAND can be read from.
-R OPERAND Tests if OPERAND can be read from by the real uid/gid.
Under DOS, it is identical to -r.
-s OPERAND Returns the size of OPERAND in bytes.
Therefore, it returns true if OPERAND is non-zero.
-S OPERAND Tests if OPERAND is a socket.
-t OPERAND Tests if OPERAND is opened to a tty.
-T OPERAND Tests if OPERAND is a text file. If OPERAND is a file handle,
then the current buffer is examined, instead of the file itself.
-u OPERAND Tests if OPERAND has the setuid bit set.
-w OPERAND Tests if OPERAND can be written to.
-W OPERAND Tests if OPERAND can be written to by the real uid/gid.
Under DOS, it is identical to -w.
-x OPERAND Tests if OPERAND can be executed.
-X OPERAND Tests if OPERAND can be executed by the real uid/gid.
Under DOS, it is identical to -x.
-z OPERAND Tests if OPERAND size is zero.


Note:
        If the OPERAND is not specified in the file test, the $ variable will be used instead.
Example:

 $filename = '/path/to/your/file.doc';
 $directoryname = '/path/to/your/directory';
 if (-f $filename) 
 {
     print "This is a file.";
 }
 if (-d $directoryname) 
 {
     print "This is a directory.";
 } 

No comments:

Post a Comment