Beta Shell
v2.0 · web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
local
/
lib64
/
perl5
/
bareword
Upload
3 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
filehandles.pm
2.03 KB
-r--r--r--
2019-05-27 19:15:56
Edit
Del
Editing: filehandles.pm
(2.03 KB)
Path: /usr/local/lib64/perl5/bareword/filehandles.pm
Back
package bareword::filehandles; # ABSTRACT: disables bareword filehandles $bareword::filehandles::VERSION = '0.007'; { use 5.008001; } use strict; use warnings; use if "$]" < 5.012, 'Lexical::SealRequireHints'; use B::Hooks::OP::Check; use XSLoader; XSLoader::load( __PACKAGE__, # we need to be careful not to touch $VERSION at compile time, otherwise # DynaLoader will assume it's set and check against it, which will cause # fail when being run in the checkout without dzil having set the actual # $VERSION exists $bareword::filehandles::{VERSION} ? ${ $bareword::filehandles::{VERSION} } : (), ); sub unimport { $^H |= 0x20000; $^H{__PACKAGE__.'/disabled'} = 1 } sub import { delete $^H{__PACKAGE__.'/disabled'} } 1; __END__ =pod =encoding UTF-8 =head1 NAME bareword::filehandles - disables bareword filehandles =head1 VERSION version 0.007 =head1 SYNOPSIS no bareword::filehandles; open FH, $file # dies open my $fh, $file; # doesn't die print FH $string # dies print STDERR $string # doesn't die =head1 DESCRIPTION This module lexically disables the use of bareword filehandles with builtin functions, except for the special builtin filehandles C<STDIN>, C<STDOUT>, C<STDERR>, C<ARGV>, C<ARGVOUT> and C<DATA>. =head1 METHODS =head2 unimport Disables bareword filehandles for the remainder of the scope being compiled. =head2 import Enables bareword filehandles for the remainder of the scope being compiled. =head1 LIMITATIONS L<Filetest operators|perlfunc/-X> (C<-X>) can not be checked on Perl versions before 5.32, because hooking the op check function for these breaks stacked tests, e.g. C<-f -w -x $file>. =head1 SEE ALSO L<perlfunc>, L<B::Hooks::OP::Check>. =head1 AUTHOR Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2011 - 2016 by Dagfinn Ilmari Mannsåker. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut