package InputData;
use Moose;
use InputDataSubtypes qw(subtype);
has 'attribute' => (
is => 'rw',
isa => subtype,
required => 1,
);
1;
####
package Operations;
use DBI;
use DBConnection;
use InputData;
use Moose;
sub querryDatabase() {
my($inputData) = @_;
my $query = 'select stuff from myTable where attribute = ?';
my $dataSource = DBConnection->getConnection();
my $preparedStatement = $dataSource->prepare($query);
$preparedStatement->execute($inputData->attribute) or die "SQL Error: $DBI::errstr\n";
while (my @row = $preparedStatement->fetchrow_array){ print "@row\n"; }
$preparedStatement->finish();
$dataSource->disconnect();
}
1;
##
##
package MainScript;
use strict;
use warnings;
use v5.22;
use InputData;
use Operations;
use Moose;
my $myInputData = InputData->new(
{
attribute => 'caller',
}
);
#here i do the sub call;
Operations->querryDatabase($myInputData);