This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
This is my patch patch.1g for perl5.001.
[perl5.git] / ext / Fcntl / Fcntl.pm
CommitLineData
a0d0e21e
LW
1package Fcntl;
2
3require Exporter;
4require AutoLoader;
5require DynaLoader;
fec02dd3 6@ISA = qw(Exporter DynaLoader);
a0d0e21e
LW
7# Items to export into callers namespace by default
8# (move infrequently used names to @EXPORT_OK below)
9@EXPORT =
10 qw(
11 F_DUPFD F_GETFD F_GETLK F_SETFD F_GETFL F_SETFL F_SETLK F_SETLKW
12 FD_CLOEXEC F_RDLCK F_UNLCK F_WRLCK
13 O_CREAT O_EXCL O_NOCTTY O_TRUNC
14 O_APPEND O_NONBLOCK
15 O_NDELAY
16 O_RDONLY O_RDWR O_WRONLY
17 );
18# Other items we are prepared to export if requested
19@EXPORT_OK = qw(
20);
21
22sub AUTOLOAD {
a0d0e21e
LW
23 local($constname);
24 ($constname = $AUTOLOAD) =~ s/.*:://;
25 $val = constant($constname, @_ ? $_[0] : 0);
26 if ($! != 0) {
27 if ($! =~ /Invalid/) {
28 $AutoLoader::AUTOLOAD = $AUTOLOAD;
29 goto &AutoLoader::AUTOLOAD;
30 }
31 else {
32 ($pack,$file,$line) = caller;
33 die "Your vendor has not defined Fcntl macro $constname, used at $file line $line.
34";
35 }
36 }
37 eval "sub $AUTOLOAD { $val }";
38 goto &$AUTOLOAD;
39}
40
41bootstrap Fcntl;
42
43# Preloaded methods go here. Autoload methods go after __END__, and are
44# processed by the autosplit program.
45package Fcntl; # return to package Fcntl so AutoSplit is happy
461;
47__END__