Perl Tricks and Tips

Always begin all scripts with:

use warnings; # All scripts should use warnings!
use strict; # insist on good programming

End scripts (so that the window doesn't immediately close) with:

system("pause");

Comments are indicated with #

Identifiers starting with $ are variables (of any type!)

Identifiers starting with @ are arrays, but individual elements are accessed like $myarray[3].

File Management

unlink is "delete". Thus:

unlink "example.txt"; # will delete the file example.txt

Files can be copied using the module "File::copy":

use File::copy;
copy("a.txt","b.txt");

Many operators can be used with files (or directories) using the syntax:

-operator $filename

Where the operator is one of these:

-r File is readable by effective uid/gid.
-w File is writable by effective uid/gid.
-x File is executable by effective uid/gid.
-o File is owned by effective uid.

-R File is readable by real uid/gid.
-W File is writable by real uid/gid.
-X File is executable by real uid/gid.
-O File is owned by real uid.

-e File exists.
-z File has zero size (is empty).
-s File has nonzero size (returns size in bytes).

-f File is a plain file.
-d File is a directory.
-l File is a symbolic link.
-p File is a named pipe (FIFO), or Filehandle is a pipe.
-S File is a socket.
-b File is a block special file.
-c File is a character special file.
-t Filehandle is opened to a tty.

-u File has setuid bit set.
-g File has setgid bit set.
-k File has sticky bit set.

-T File is an ASCII text file (heuristic guess).
-B File is a "binary" file (opposite of -T).

-M Script start time minus file modification time, in days.
-A Same for access time.
-C Same for inode change time (Unix, may differ for other platforms)

Thus " if ( -e $filename ) " will test to see if a file exists.