Hello perlnewb4life, and welcome to the Monastery!
Anonymous Monk means that this:
sub querryDatabase() { my($inputData) = @_; ...
should be this:
sub querryDatabase() { my($self, $inputData) = @_; ...
because the first argument passed in to any method call is always an object reference. Here’s a contrived (and naïve) example:
use strict; use warnings; package Widget { use Moose; has 'ID' => ( is => 'rw', isa => 'Str', required => 1, ); sub inc_id { my ($self, $inc) = @_; my $id = $self->ID; my ($prefix, $suffix) = $id =~ /^([^\d]+)(\d+)$/; $self->ID( $prefix . ($suffix + $inc) ); } } my $gizmo = Widget->new( { ID => 'PM142' } ); print $gizmo->ID, "\n"; $gizmo->inc_id(5); print $gizmo->ID, "\n";
Output:
16:41 >perl 1366_SoPW.pl PM142 PM147 16:41 >
Note that the inc_id method receives two arguments, although only the second (in this case, 5) is passed explicitly in the method call $gizmo->inc_id(5). The first argument, a reference to the $gizmo object, is passed implicitly.
Hope that helps,
Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re^4: calling sub with object as param
by Athanasius
in thread calling sub with object as param
by perlnewb4life
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |