Server IP : 195.201.23.43 / Your IP : 3.135.211.221 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/x86_64-linux-gnu/perl5/5.30/DBI/Util/ |
Upload File : |
package DBI::Util::_accessor; use strict; use Carp; our $VERSION = "0.009479"; # inspired by Class::Accessor::Fast sub new { my($proto, $fields) = @_; my($class) = ref $proto || $proto; $fields ||= {}; my @dubious = grep { !m/^_/ && !$proto->can($_) } keys %$fields; carp "$class doesn't have accessors for fields: @dubious" if @dubious; # make a (shallow) copy of $fields. bless {%$fields}, $class; } sub mk_accessors { my($self, @fields) = @_; $self->mk_accessors_using('make_accessor', @fields); } sub mk_accessors_using { my($self, $maker, @fields) = @_; my $class = ref $self || $self; # So we don't have to do lots of lookups inside the loop. $maker = $self->can($maker) unless ref $maker; no strict 'refs'; foreach my $field (@fields) { my $accessor = $self->$maker($field); *{$class."\:\:$field"} = $accessor unless defined &{$class."\:\:$field"}; } #my $hash_ref = \%{$class."\:\:_accessors_hash}; #$hash_ref->{$_}++ for @fields; # XXX also copy down _accessors_hash of base class(es) # so one in this class is complete return; } sub make_accessor { my($class, $field) = @_; return sub { my $self = shift; return $self->{$field} unless @_; croak "Too many arguments to $field" if @_ > 1; return $self->{$field} = shift; }; } sub make_accessor_autoviv_hashref { my($class, $field) = @_; return sub { my $self = shift; return $self->{$field} ||= {} unless @_; croak "Too many arguments to $field" if @_ > 1; return $self->{$field} = shift; }; } 1;Private