[Bioperl-l] Bioperl objects and subroutines

Andreas Kahari ak at ebi.ac.uk
Wed May 12 10:55:09 EDT 2004


On Wed, May 12, 2004 at 01:28:04PM +0100, Jonathan Manning wrote:
> Hi all,
> 
> Sorry if this seems more like a general perl question, but I can't find
> the answer I need in my books.
> 
> How do I pass an object (specifically a Bio::Seq object) to a perl
> subroutine? I thought object variables were references anyway, but
> passing those variables didn't work. At the moment I pass a reference
> like:
> 
> $reference = \$seqobject;
> &subroutine($reference);
> 
> And within the subroutine attempt to access like:
> 
> $sequence = bless @_[0];
> 
> But this doesn't work either, and I can't access the object methods.
> 
> Obviously I'm no perl veteran, and don't really know how to do it.
> Thanks in advance for any help.

A Perl object is already a [blessed] reference.

sub grok
{
    my $birney = shift;
    return $birney->poke();
}

my $thing = Bio::somemodule->new({ stuff => 'this' });
print grok($thing);

(well, you get the idea)



Andreas

-- 
|-)(-| Andreas Kähäri      EMBL, European Bioinformatics Institute
|(--)|                     Wellcome Trust Genome Campus
|-)(-| Ensembl Developer   Hinxton, Cambridgeshire, CB10 1SD
|(--)| DAS Project Leader  United Kingdom


More information about the Bioperl-l mailing list