Acme-Lambda-Expr

 view release on metacpan or  search on metacpan

inc/Module/Install.pm  view on Meta::CPAN

}

# Cloned from Params::Util::_CLASS
sub _CLASS ($) {
	(
		defined $_[0]
		and
		! ref $_[0]
		and
		$_[0] =~ m/^[^\W\d]\w*(?:::\w+)*$/s
	) ? $_[0] : undef;
}

1;

# Copyright 2008 Adam Kennedy.

lib/Acme/Lambda/Expr/Method.pm  view on Meta::CPAN


	my $invocant = $self->invocant;
	my $method   = $self->method;
	my @args     = $self->args;

	return sub{
		my $self = &{$invocant};

		$self->$method(map{ &{$_} } @args);
#		if(not defined $self){
#			Carp::croak(qq{Can't call method "$method" on an undefined value});
#		}
#		elsif(Scalar::Util::looks_like_number $self){
#			Carp::croak(qq{Can't call method "$method" without a package or object reference});
#		}
#
#		my $method_entity = $self->can($method);
#
#		if($method_entity){
#			@_ = ($self, map{ &{$_} } @args);
#			goto &{$method_entity};

lib/Acme/Lambda/Expr/Value.pm  view on Meta::CPAN

		else{
			$value =~ s/\\/\\\\/g;
			$value =~ s/\n/\\n/g;
			$value =~ s/\r/\\r/g;
			$value =~ s/\t/\\t/g;
			$value =~ s/"/\\"/g;
			$value = qq{"$value"};
		}
	}
	else{
		$value = 'undef';
	}
	return $value;
}

sub stringify{
	my($self) = @_;

	return sprintf 'value(%s)', $self->deparse;
}

t/02_curry.t  view on Meta::CPAN


my $o = Foo->new(vlaue => 10);
$f = curry 'value', $o, $x;
$f->(20);

is $o->value, 20;

$f = curry $x - $y, 10, $x;
is $f->(6), 4;

$f = curry undefined_method => $x;

throws_ok{
	$f->($o);
} qr/Can't locate object method/;
throws_ok{
	$f->(undef);
} qr/Can't call method/;



( run in 1.839 second using v1.01-cache-2.11-cpan-d80b1682f3f )