Thanks Will,

Appreciate you clarifying this for me.


From: will trillich []
Sent: 29 October 2012 19:16
To: The elegant MVC web framework
Subject: Re: [Catalyst] Why is $c undefined?

On Mon, Oct 29, 2012 at 2:07 PM, Craig Chant 
<<>> wrote:
sub begin :Private {

    my ( $self, $c ) = @_;

    # Authenticate

Note, you don't pass $c to AuthenticateUser here!

    return 1;


I then have...

sub AuthenticateUser {

    my ( $self, $c ) = @_;



However, $c is undefined and errors, it only works if I pass it $c from 


I was under the impression that $c was the context (Catalyst) default variable 
and was always passed to every method / subroutine.

is this not the case?

Right, that's not the case. It only passes to the :Chained or :Args or 
:CaptureArgs methods. This leaves you free to create your own internal methods 
that don't get extra $c args interfering with your logic.

 Will Trillich :: 812.454.6431

“Grading takes away all the fun from failing. And a huge part of education is 
about failure.”  -- Shimon Schocken
This Email and any attachments contain confidential information and is intended 
solely for the individual to whom it is addressed. If this Email has been 
misdirected, please notify the author as soon as possible. If you are not the 
intended recipient you must not disclose, distribute, copy, print or rely on 
any of the information contained, and all copies must be deleted immediately. 
Whilst we take reasonable steps to try to identify any software viruses, any 
attachments to this e-mail may nevertheless contain viruses, which our 
anti-virus software has failed to identify. You should therefore carry out your 
own anti-virus checks before opening any documents. HomeLoan Partnership will 
not accept any liability for damage caused by computer viruses emanating from 
any attachment or other document supplied with this e-mail. HomeLoan 
Partnership reserves the right to monitor and archive all e-mail communications 
through its network. No representative or employee of HomeLoan Partnership has 
the authority to enter into any contract on behalf of HomeLoan Partnership by 
email. HomeLoan Partnership is a trading name of H L Partnership Limited, 
registered in England and Wales with Registration Number 5011722. Registered 
office: 26-34 Old Street, London, EC1V 9QQ. H L Partnership Limited is 
authorised and regulated by the Financial Services Authority.
Searchable archive:
Dev site:

Reply via email to