PHP 8.1.33
Preview: deprecate.pm Size: 3.01 KB
/usr/share/perl5/deprecate.pm

package deprecate;
use strict;
use warnings;
our $VERSION = 0.03;

# our %Config can ignore %Config::Config, e.g. for testing
our %Config;
unless (%Config) { require Config; *Config = \%Config::Config; }

# This isn't a public API. It's internal to code maintained by the perl-porters
# If you would like it to be a public API, please send a patch with
# documentation and tests. Until then, it may change without warning.
sub __loaded_from_core {
    my ($package, $file, $expect_leaf) = @_;

    foreach my $pair ([qw(sitearchexp archlibexp)],
		      [qw(sitelibexp privlibexp)]) {
	my ($site, $priv) = @Config{@$pair};
	if ($^O eq 'VMS') {
	    for my $d ($site, $priv) { $d = VMS::Filespec::unixify($d) };
	}
	# Just in case anyone managed to configure with trailing /s
	s!/*$!!g foreach $site, $priv;

	next if $site eq $priv;
	if (uc("$priv/$expect_leaf") eq uc($file)) {
	    return 1;
	}
    }
    return 0;
}

sub import {
    my ($package, $file) = caller;

    my $expect_leaf = "$package.pm";
    $expect_leaf =~ s!::!/!g;

    if (__loaded_from_core($package, $file, $expect_leaf)) {
	my $call_depth=1;
	my @caller;
	while (@caller = caller $call_depth++) {
	    last if $caller[7]			# use/require
		and $caller[6] eq $expect_leaf;	# the package file
	}
	unless (@caller) {
	    require Carp;
	    Carp::cluck(<<"EOM");
Can't find use/require $expect_leaf in caller stack
EOM
	    return;
	}

	# This is fragile, because it
	# is directly poking in the internals of warnings.pm
	my ($call_file, $call_line, $callers_bitmask) = @caller[1,2,9];

	if (defined $callers_bitmask
	    && (vec($callers_bitmask, $warnings::Offsets{deprecated}, 1)
		|| vec($callers_bitmask, $warnings::Offsets{all}, 1))) {
	    warn <<"EOM";
$package will be removed from the Perl core distribution in the next major release. Please install it from CPAN. It is being used at $call_file, line $call_line.
EOM
	}
    }
}

1;

__END__

=head1 NAME

deprecate - Perl pragma for deprecating the core version of a module

=head1 SYNOPSIS

    use deprecate;  # always deprecate the module in which this occurs

    use if $] > 5.010, 'deprecate'; # conditionally deprecate the module


=head1 DESCRIPTION

This module is used using C<use deprecate;> (or something that calls
C<< deprecate->import() >>, for example C<use if COND, deprecate;>).

If the module that includes C<use deprecate> is located in a core library
directory, a deprecation warning is issued, encouraging the user to use
the version on CPAN.  If that module is located in a site library, it is
the CPAN version, and no warning is issued.

=head2 EXPORT

None by default.  The only method is C<import>, called by C<use deprecate;>.


=head1 SEE ALSO

First example to C<use deprecate;> was L<Switch>.


=head1 AUTHOR

Original version by Nicholas Clark


=head1 COPYRIGHT AND LICENSE

Copyright (C) 2009, 2011

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.0 or,
at your option, any later version of Perl 5 you may have available.


=cut

Directory Contents

Dirs: 35 × Files: 57

Name Size Perms Modified Actions
Attribute DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
B DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Class DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Compress DIR
- drwxr-xr-x 2024-03-03 19:11:21
Edit Download
Config DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
CPAN DIR
- drwxr-xr-x 2024-03-03 20:50:36
Edit Download
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Devel DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
encoding DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
ExtUtils DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
File DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Getopt DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
I18N DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
IO DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
IPC DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Locale DIR
- drwxr-xr-x 2025-07-28 08:08:32
Edit Download
Math DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Memoize DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Module DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Net DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
overload DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Pod DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
pod DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Search DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Term DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Text DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Thread DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Tie DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Time DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
Unicode DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
unicore DIR
- drwxr-xr-x 2025-07-28 23:00:17
Edit Download
URI DIR
- drwxr-xr-x 2024-03-03 19:11:18
Edit Download
User DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
- drwxr-xr-x 2025-07-28 08:07:18
Edit Download
warnings DIR
- drwxr-xr-x 2025-07-28 23:00:18
Edit Download
2.56 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
15.43 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
19.18 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
4.14 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
10.72 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
30.30 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
2.04 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
3.67 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
758 B lrw-r--r-- 2025-07-28 08:07:09
Edit Download
20.38 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
3.11 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
18.48 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
14.05 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
3.01 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
18.59 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
1.52 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
17.14 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
15.19 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
4.65 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
16.68 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
9.27 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
5.44 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
6.63 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
3.91 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
4.45 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
3.26 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
3.18 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
2.52 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
3.13 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
4.74 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
35.34 KB lrw-r--r-- 2025-07-28 08:08:32
Edit Download
2.07 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
18.40 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
7.83 KB lrw-r--r-- 2025-07-28 08:08:32
Edit Download
52.06 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
1.77 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
309.00 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
10.21 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
24.49 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
1.05 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
17.28 KB lrw-r--r-- 2025-07-28 08:08:32
Edit Download
7.43 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
5.94 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
4.63 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
848 B lrw-r--r-- 2025-07-28 08:07:09
Edit Download
4.69 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
29.35 KB lrw-r--r-- 2025-07-28 08:08:32
Edit Download
8.09 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
6.44 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
33.97 KB lrw-r--r-- 2018-01-09 06:42:55
Edit Download
8.90 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
30.87 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
2.36 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
4.21 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
43.71 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
11.00 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download
32.39 KB lrw-r--r-- 2025-07-28 08:07:09
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).