[EP-tech] Re: Can_call for nested config

Sebastien Francois sf2 at ecs.soton.ac.uk
Fri Jun 15 16:39:41 BST 2012


You need to pass the path to your sub() as an array ref so:

$repo->call( [ 'ethos', $institution, 'thesis_type_match' ], 'some data' );

Seb.

On 15/06/12 16:28, John Salter wrote:
> OK - it looks like the can_call works OK, but actually calling (with some data) it doesn't.
> Doing this:
>
> if ( $repository->can_call( 'ethos', $institution, 'thesis_type_match' ) ){
> 	print "CAN CALL!\n";
> 	print $repository->call( 'ethos', $institution, 'thesis_type_match', 'some data' );
> }
>
> Results in:
> CAN CALL!
> Undefined or invalid function: ethos
>
> Any clues?
>
> Cheers,
> John
>
>
> -----Original Message-----
> From: eprints-tech-bounces at ecs.soton.ac.uk [mailto:eprints-tech-bounces at ecs.soton.ac.uk] On Behalf Of Sebastien Francois
> Sent: 15 June 2012 16:03
> To: eprints-tech at ecs.soton.ac.uk
> Subject: [EP-tech] Re: Can_call for nested config
>
> Hi,
>
> I've copied / pasted your example which just works on my local 3.3.9
> install.
>
> Try debugging perl_lib/Repository.pm::can_call and see where it fails.
>
> Seb.
>
> On 15/06/12 15:44, John Salter wrote:
>> I'm trying to do things the *right* way, using can_call
>>
>> I have a config file that includes something like:
>> my $ethos = {};
>> $c->{ethos} = $ethos;
>>
>> $ethos->{'leeds'}->{'thesis_type_match'} = sub
>> {
>> 	#stuff
>> };
>>
>> $ethos->{'sheffield'}->{'thesis_type_match'} = sub
>> {
>> 	#other stuff
>> };
>>
>> In my code, I'm trying to do something like:
>> $institution= 'leeds';
>> if ( $repository->can_call( 'ethos', $institution, 'thesis_type_match' ) ){
>> 	#stuff
>> };
>> But it isn't working.
>>
>> Should I be able to do this?
>> If I just use:
>> $c->{'thesis_type_match'} = sub
>> {
>> 	#stuff
>> }
>> It works - but that would mean config wasn't contained in 'ethos'..?
> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
> *** Archive: http://www.eprints.org/tech.php/
> *** EPrints community wiki: http://wiki.eprints.org/
>
> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
> *** Archive: http://www.eprints.org/tech.php/
> *** EPrints community wiki: http://wiki.eprints.org/



More information about the Eprints-tech mailing list