sub myglob { my @g = glob shift; @g } #### if (glob "$dir/*") { print "glob $dir: yes\n"; } if (myglob "$dir/*") { print "myglob $dir: yes\n"; } #### #!/usr/bin/perl -w sub glob2 { glob(shift); } sub myglob { my @g = glob(shift); @g } use strict; use diagnostics; my @dirs = ('dir1', 'dir2', 'dir3', 'dir4', 'dir5', 'dir6'); #my @dir_x = '~'; my @dir_x = '/bin'; #my @dir_x = '/dir-fake-root'; my @fakedirs = ('dir-fake1', 'dir-fake2'); map { mkdir($_,0777) ; local *F; open(F,">$_/x.test") && close(F) || die; } @dirs; for my $dir (@dirs, @fakedirs, @dir_x, @dirs, @fakedirs) { print "$dir/*: "; if (myglob("$dir/*")) { print "myglob "; } if (glob ("$dir/*")) { print "glob "; } if (glob2 ("$dir/*")) { print "glob2 "; } print "\n"; } map { unlink("$_/x.test") || die; rmdir($_) || die; } @dirs; #### dir1/*: myglob glob glob2 dir2/*: myglob dir3/*: myglob glob glob2 dir4/*: myglob dir5/*: myglob glob glob2 dir6/*: myglob dir-fake1/*: dir-fake2/*: /bin/*: myglob glob glob2 dir1/*: myglob glob glob2 dir2/*: myglob glob glob2 dir3/*: myglob glob glob2 dir4/*: myglob glob glob2 dir5/*: myglob glob glob2 dir6/*: myglob glob glob2 dir-fake1/*: glob glob2 dir-fake2/*: glob glob2