Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

73 lines (53 sloc) 1.38 kb
#!/usr/bin/perl
use perl5i::2;
use Test::More;
# Test func
{
func minus($this, $that) { return $this - $that }
is minus(2, 3), -1;
}
# Test method
{
{
package Foo;
use perl5i::2;
method new ($class: %args) {
return bless \%args, $class;
}
method get ($thing) {
return unless @_; # just to shut up warnings
return $self->{$thing};
}
}
my $obj = Foo->new( this => 42, that => 23 );
isa_ok $obj, "Foo";
is $obj->get("this"), 42;
is $obj->get("wibble"), undef;
# When we get required parameters this should use them.
is $obj->get(), undef;
}
# Anonymous
{
my $code = func($this, @these) {
return $this, \@these;
};
is_deeply [$code->(42, 1, 2, 3)], [42, [1,2,3]];
my $method = method($arg) {
return $self, $arg;
};
is_deeply [Foo->$method(23)], ["Foo", 23];
}
# Test an anonymous function keeps the same signature
{
my %last;
for(1..3) {
my $code = func($this, $that) { return "$this, $that"; };
if( $last{code} ) {
is $code->signature->mo->id, $last{sig}->mo->id, "same signature";
is $code->mo->id, $last{code}->mo->id, "same code ref";
}
$last{code} = $code;
$last{sig} = $code->signature;
}
}
done_testing();
Jump to Line
Something went wrong with that request. Please try again.