Stevan Little wrote:
>
> On Mar 5, 2010, at 9:06 AM, Emmanuel Quevillon wrote:
>> Joel Bernstein wrote:
>>> On 5 Mar 2010, at 13:37, Emmanuel Quevillon wrote:
>>>> By the way, I use a self coded 'new' method to create my object.
>>>> Would it be the problem?
>>>
>>> Yes. But you omitted the code that doesn't work, so... Good luck!
>>>
>>> /joel
>>
>> oops sorry,
>>
>> sub new {
>>
>> my($class, %args) = @_;
>>
>> my $self = $class->SUPER::new(%args);
>>
>> $self->_init(%args);
>> $self->_build_types(%args);
>> return $self;
>> }
>>
>> Later in the code is try $self->so_type(), nothing is returned...
>
> Honestly, this should work, however you very well might be doing
> something in _init or _build_types that causes the problem. Perhaps
> showing us some more code would help.
>
> You might also try changing your "new" to this:
>
> sub BUILD {
> my($self, $args) = @_;
> $self->_init(%$args);
> $self->_build_types(%$args);
> }
>
> .. which is a little more Moosey.
>
> - stevan
>
I tried without success :
Here are the methods :
sub BUILD {
my($self, $args) = @_;
$self->_init(%$args);
$self->_build_types(%$args);
}
sub _init {
my($self, %args) = @_;
my($output, $cut_type, $format, $style) =
$self->_rearrange([qw/OUTPUT CUT_TYPES FORMAT STYLE/], %args);
$format && $self->_set_format (lc($format));
$cut_type && $self->_set_cut_types($cut_type);
$self->_set_style (lc($style) || 'text');
$self->_set_output($output);
return $self;
}
sub _build_types {
my($self, %args) = @_;
$self->{_types} = [ ];
foreach my $type (sort { $a cmp $b } @{$self->cut_types()}){
$type = lc($type);
my $obj = "Bio::Restriction::Analysis::FramedCut::$type";
$self->add_type($obj->new(%args));
}
return;
}
If I put some print into these method, nothing is printed out on my
screen. Looks like there are not called at all. :(
I'm really lost :(
--
-------------------------
Emmanuel Quevillon
Biological Software and Databases Group
Institut Pasteur
+33 1 44 38 95 98
tuco at_ pasteur dot fr
-------------------------