Search notes:

Perl function: -r_-w_-x_-o_-R_-W_-X_-O_-e_-z_-s_-f_-d_-l_-p_-S_-b_-c_-t_-u_-g_-k_-T_-B_-M_-A_-C

use warnings;
use strict;
use feature 'say';


my $file_or_dir = shift;
$file_or_dir = __FILE__ unless $file_or_dir;


#    -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 Age of file relative to script start time, in days.
#    -A Same for access time.
#    -C Same for inode change time (Unix, may differ for other
#    platforms)


if (-e $file_or_dir) {

  if (-f $file_or_dir) {
    say "$file_or_dir is a file, its size in bytes is: " . -s $file_or_dir;
  }
  elsif (-d $file_or_dir) {
    say "$file_or_dir is a diractory";
  }
  else {
    say "Neither a file nor a directory???";
  }

  printf "Last modification of $file_or_dir about %.2f days ago\n", -M $file_or_dir;

}
else {
  say "$file_or_dir does not exist";
}
Github repository about-perl, path: /functions/-r_-w_-x_-o_-R_-W_-X_-O_-e_-z_-s_-f_-d_-l_-p_-S_-b_-c_-t_-u_-g_-k_-T_-B_-M_-A_-C.pl

See also

Perl functions
test (shell)

Index