On Feb 26, 11:20 am, [EMAIL PROTECTED] (Dermot) wrote:
> Hi All,
>
> I am trying to work with the CGI::FormBuilder module in a Catalyst
> environment. My question is more about OO programming than either of those 2
> modules though.
>
> I am trying to create a method/sub that will create a form to either edit or
> add an entry. I am creating the initial object and depending on whether or
> not the entry already exists, I want to set-up some aspects of my object
> (making sense??). So I want to create the object, assign it to a variable
> and make changes to it (or not) later depending on some condition. Here's an
> abridged version of what I have done so far:
>
> use strict;
> use warnings;
> ...snip
>
> sub edit : Local Form {
>   my ($self, $c, $id) = @_;
>
> # Here comes my form
> my $fb = $self->formbuilder->field(
>                 name  => 'Users',
>                 type => 'select',
>                 options =>
>                         [ map { [ $_ -> id, $_->code ] }
> $c->model('Files::users')->all ],
>                 required => 1,
>                #value => undef
>         );
> ...
>   if ($id) {
>       $fb->{value} = $some_default_val;
>   }
>
> }
>
> So I guess the question is what sort of structure have I created initially
> with $fb and $self and does $fb->{value} make sense. Can I add an attribute
> to an object after I've created it in this way.

Go back to basics.  An object is just a hash[1], a reference to which
happens to be blessed into a specific class.  But it's still just a
hash.  Anything you can do to a normal hash, you can do to an object.
That includes adding new key/value pairs to it.

So yes, it's perfectly allowed.  No reason you can't.

Paul Lalli

[1] in this case, of course.  You're equally able to make an object
out of a reference to a scalar, an array, a filehandle, or pretty much
anything else...


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to