Server IP : 111.118.215.189 / Your IP : 216.73.216.185 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/doc/perl-Class-Accessor-0.34/examples/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
#!/usr/bin/perl -w package Bench::Base; sub new { my($class) = shift; bless { test => 23 }, $class; } package Bench::Direct; use base qw(Bench::Base); package Bench::Normal; use Class::Accessor "moose-like"; has test => (is => "rw"); package Bench::Fast; use Class::Accessor::Fast "moose-like"; has test => (is => "rw"); package Bench::Faster; use Class::Accessor::Faster "antlers"; has test => (is => "rw"); package Bench::Moose; use Moose; has test => (is => "rw"); package Bench::Mouse; use Mouse; has test => (is => "rw"); package main; use strict; use Benchmark 'cmpthese'; my $tmp; my $direct = Bench::Direct->new({ test => 23 }); my %accessor = ( Direct => sub { $tmp = $direct->{test}; } ); my %mutator = ( Direct => sub { $direct->{test} = 42; } ); for my $p (qw/Normal Fast Faster Moose Mouse/) { my $o = "Bench::$p"->new({ test => 23 }); $accessor{$p} = sub { $tmp = $o->test; }; $mutator{$p} = sub { $o->test(42); }; } print "accessors:\n"; cmpthese( -10, \%accessor ); print "\n"; print "mutators:\n"; cmpthese( -10, \%mutator );