#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use feature 'say'; use Test::More; use File::stat; my $file = $ARGV[0]; my $sb = stat( $file ); my $mode = $sb->mode & 0777; warn "mode of [$file] is [$mode]"; ok( -O $file, "File owned by real uid" ); ok( -f $file, "File is a plain file" ); ok( ! $mode & 022, "File is not group or world writable" ); done_testing; # Results in: mode of [/etc/passwd] is [420] at ./foo.pl line 14. not ok 1 - File owned by real uid # Failed test 'File owned by real uid' # at ./foo.pl line 16. ok 2 - File is a plain file not ok 3 - File is not group or world writable # Failed test 'File is not group or world writable' # at ./foo.pl line 18. 1..3 # Looks like you failed 2 tests of 3.