package File::stat;
+use 5.006;
+
use strict;
+use warnings;
-use 5.005_64;
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+our $VERSION = '1.00';
+
BEGIN {
use Exporter ();
@EXPORT = qw(stat lstat);
# Class::Struct forbids use of @ISA
sub import { goto &Exporter::import }
-use Class::Struct;
+use Class::Struct qw(struct);
struct 'File::stat' => [
map { $_ => '$' } qw{
dev ino mode nlink uid gid rdev size
my $arg = shift;
my $st = populate(CORE::stat $arg);
return $st if $st;
- no strict 'refs';
- require Symbol;
- return populate(CORE::stat \*{Symbol::qualify($arg)});
+ my $fh;
+ {
+ local $!;
+ no strict 'refs';
+ require Symbol;
+ $fh = \*{ Symbol::qualify( $arg, caller() )};
+ return unless defined fileno $fh;
+ }
+ return populate(CORE::stat $fh);
}
1;