Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use strict;
- use warnings;
- use Benchmark 'cmpthese';
- use Method::Signatures ':DEBUG';
- sub sub_empty { }
- func func_empty {}
- sub sub_empty_method { my $self = shift; }
- method meth_empty_method {}
- sub sub_one_arg_method {
- my ($self, $xpto) = @_;
- die unless $xpto == 42;
- }
- sub sub_one_arg_method_opt {
- my $self = shift;
- my $xpto = $_[0];
- die unless $xpto == 42;
- }
- method meth_one_arg_method_opt ($xpto?) { die unless $xpto == 42 }
- method meth_one_arg_method ($xpto) { die unless $xpto == 42 }
- cmpthese(
- -2,
- { 'sub_empty' => sub { sub_empty() },
- 'func_empty' => sub { func_empty() },
- 'sub_empty_method' => sub { main->sub_empty_method() },
- 'meth_empty_method' => sub { main->meth_empty_method() },
- 'sub_one_arg_method' => sub { main->sub_one_arg_method(42) },
- 'sub_one_arg_method_opt' => sub { main->sub_one_arg_method_opt(42) },
- 'meth_one_arg_method' => sub { main->meth_one_arg_method(42) },
- 'meth_one_arg_method_opt' => sub { main->meth_one_arg_method(42) },
- }
- );
Add Comment
Please, Sign In to add comment