Acme-AirRead
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
358359360361362363364365366367368369370371372373374375376377378379380381#####################################################################
# Common Utility Functions
sub
_caller {
my
$depth
= 0;
my
$call
=
caller
(
$depth
);
while
(
$call
eq __PACKAGE__ ) {
$depth
++;
$call
=
caller
(
$depth
);
}
return
$call
;
}
# Done in evals to avoid confusing Perl::MinimumVersion
eval
( $] >= 5.006 ? <<
'END_NEW'
: <<
'END_OLD'
);
die
$@
if
$@;
sub
_read {
local
*FH
;
open
( FH,
'<'
,
$_
[0] ) or
die
"open($_[0]): $!"
;
my
$string
=
do
{
local
$/; <FH> };
inc/Module/Install/Makefile.pm view on Meta::CPAN
141516171819202122232425262728293031323334}
sub
Makefile {
$_
[0] }
my
%seen
= ();
sub
prompt {
shift
;
# Infinite loop protection
my
@c
=
caller
();
if
( ++
$seen
{
"$c[1]|$c[2]|$_[0]"
} > 3 ) {
die
"Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])"
;
}
# In automated testing or non-interactive session, always use defaults
if
( (
$ENV
{AUTOMATED_TESTING} or -! -t STDIN) and !
$ENV
{PERL_MM_USE_DEFAULT} ) {
local
$ENV
{PERL_MM_USE_DEFAULT} = 1;
goto
&ExtUtils::MakeMaker::prompt
;
}
else
{
goto
&ExtUtils::MakeMaker::prompt
;
inc/Test/More.pm view on Meta::CPAN
789101112131415161718192021222324252627#---- perlcritic exemptions. ----#
# We use a lot of subroutine prototypes
## no critic (Subroutines::ProhibitSubroutinePrototypes)
# Can't use Carp because it might cause use_ok() to accidentally succeed
# even though the module being used forgot to use Carp. Yes, this
# actually happened.
sub
_carp {
my
(
$file
,
$line
) = (
caller
(1) )[ 1, 2 ];
return
warn
@_
,
" at $file line $line\n"
;
}
our
$VERSION
=
'0.98'
;
$VERSION
=
eval
$VERSION
;
## no critic (BuiltinFunctions::ProhibitStringyEval)
our
@ISA
=
qw(Test::Builder::Module)
;
our
@EXPORT
= qw(ok use_ok require_ok
is isnt like unlike is_deeply
lib/Acme/AirRead.pm view on Meta::CPAN
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package
Acme::AirRead;
use
strict;
use
warnings;
no
strict
'refs'
;
our
$VERSION
=
'0.05'
;
our
$NO_READ
=
qr{air|luft}
;
sub
import
{
my
(
$pkg
) =
caller
(0);
*{
$pkg
.
'::read_air'
} = \
&read_air
;
*{
$pkg
.
'::write_air'
} = \
&write_air
;
*{
$pkg
.
'::empty_air'
} = \
&empty_air
;
}
sub
read_air {
my
(
$pkg
) =
caller
(0);
my
$key
=
lc
$_
[0];
return
if
$key
=~
$NO_READ
;
my
$namespace
=
$pkg
.
'::AirRead::attr'
;
if
(
$namespace
->can(
$_
[0]) ) {
return
*{
$pkg
.
'::AirRead::attr::'
.
$_
[0] }->();
}
else
{
return
;
}
}
sub
write_air {
my
(
$pkg
) =
caller
(0);
return
unless
scalar
@_
;
my
%args
=
@_
;
foreach
my
$key
(
sort
keys
%args
) {
my
$val
=
$args
{
$key
};
*{
$pkg
.
'::AirRead::attr::'
.
$key
} =
sub
{
$val
};
}
}
sub
empty_air {
my
(
$pkg
) =
caller
(0);
my
$symbol_tbl
=
$pkg
.
'::AirRead::attr::'
;
foreach
my
$symbol
(
keys
%$symbol_tbl
) {
delete
$symbol_tbl
->{
$symbol
};
}
}
1;
__END__
=head1 NAME
( run in 0.330 second using v1.01-cache-2.11-cpan-e5176c747c2 )