Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Getting File Information in Perl
You can test certain features very quickly within Perl using a series of test operators known collectively as -X tests. For example, to perform a quick test of the various permissions on a file, you might use a script like this −
#/usr/bin/perl
my $file = "/usr/test/file1.txt";
my (@description, $size);
if (-e $file) {
push @description, 'binary' if (-B _);
push @description, 'a socket' if (-S _);
push @description, 'a text file' if (-T _);
push @description, 'a block special file' if (-b _);
push @description, 'a character special file' if (-c _);
push @description, 'a directory' if (-d _);
push @description, 'executable' if (-x _);
push @description, (($size = -s _)) ? "$size bytes" : 'empty';
print "$file is ", join(', ',@description),"\n";
}
Here is the list of features, which you can check for a file or directory −
| Sr.No | Operator & Definition |
|---|---|
| 1 |
-A Script start time minus file last access time, in days. |
| 2 |
-B Is it a binary file? |
| 3 |
-C Script start time minus file last inode change time, in days. |
| 4 |
-M Script start time minus file modification time, in days. |
| 5 |
-O Is the file owned by the real user ID? |
| 6 |
-R Is the file readable by the real user ID or real group? |
| 7 |
-S Is the file a socket? |
| 8 |
-T Is it a text file? |
| 9 |
-W Is the file writable by the real user ID or real group? |
| 10 |
-X Is the file executable by the real user ID or real group? |
| 11 |
-b Is it a block special file? |
| 12 |
-c Is it a character special file? |
| 13 |
-d Is the file a directory? |
| 14 |
-e Does the file exist? |
| 15 |
-f Is it a plain file? |
| 16 |
-g Does the file have the setgid bit set? |
| 17 |
-k Does the file have the sticky bit set? |
| 18 |
-l Is the file a symbolic link? |
| 19 |
-o Is the file owned by the effective user ID? |
| 20 |
-p Is the file a named pipe? |
| 21 |
-r Is the file readable by the effective user or group ID? |
| 22 |
-s Returns the size of the file, zero size = empty file. |
| 23 |
-t Is the filehandle opened by a TTY (terminal)? |
| 24 |
-u Does the file have the setuid bit set? |
| 25 |
-w Is the file writable by the effective user or group ID? |
| 26 |
-x Is the file executable by the effective user or group ID? |
| 27 |
-z Is the file size zero? |
Advertisements