����JFIF��x�x����'
Server IP : 78.140.185.180 / Your IP : 3.22.42.249 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /usr/share/perl5/vendor_perl/Specio/ |
Upload File : |
package Specio::Registry; use strict; use warnings; use parent 'Exporter'; our $VERSION = '0.42'; use Carp qw( confess croak ); our @EXPORT_OK = qw( exportable_types_for_package internal_types_for_package register ); my %Registry; sub register { confess 'register requires three or four arguments (package, name, type, [exportable])' unless @_ == 3 || @_ == 4; my $package = shift; my $name = shift; my $type = shift; my $exportable = shift; croak "The $package package already has a type named $name" if $Registry{$package}{internal}{$name}; # This is structured so that we can always return a _reference_ for # *_types_for_package. This means that the generated t sub sees any # changes to the registry as they happen. This is important inside a # package that is declaring new types. It needs to be able to see types it # has declared. $Registry{$package}{internal}{$name} = $type; $Registry{$package}{exportable}{$name} = $type if $exportable; return; } sub exportable_types_for_package { my $package = shift; return $Registry{$package}{exportable} ||= {}; } sub internal_types_for_package { my $package = shift; return $Registry{$package}{internal} ||= {}; } 1; # ABSTRACT: Implements the per-package type registry __END__ =pod =encoding UTF-8 =head1 NAME Specio::Registry - Implements the per-package type registry =head1 VERSION version 0.42 =head1 DESCRIPTION There's nothing public here. =for Pod::Coverage .* =head1 SUPPORT Bugs may be submitted at L<https://github.com/houseabsolute/Specio/issues>. I am also usually active on IRC as 'autarch' on C<irc://irc.perl.org>. =head1 SOURCE The source code repository for Specio can be found at L<https://github.com/houseabsolute/Specio>. =head1 AUTHOR Dave Rolsky <autarch@urth.org> =head1 COPYRIGHT AND LICENSE This software is Copyright (c) 2012 - 2017 by Dave Rolsky. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) The full text of the license can be found in the F<LICENSE> file included with this distribution. =cut