#!/usr/bin/perl -w # # Salvia.pm # Class definition for Salvia object # (C) 2016 Mischa Capazario v.0.1 Tue Feb 23 16:54:06 SAST 2016 # use MLDBM qw(DB_File Storable); use Fcntl; package Salvia; my $dataFile = qq|Plants/Salvia.bdb|; sub new { my $self = shift; return bless {}, $self; } sub add { my $self = shift; my $Strain = shift; return $self->update($Strain); } sub get { my $self = shift; my $Strain = shift; my %Salvia; my $dbm = tie %Salvia, 'MLDBM', $dataFile or die $!; undef $dbm; if( defined $Strain ) { if ( defined $Salvia{$Strain} ) { return \%{$Salvia{$Strain}}; } } else { return \%Salvia; } } sub update { my $self = shift; my $Strain = shift; my %Salvia; my $dbm = tie %Salvia, 'MLDBM', $dataFile or die $!; my $strain = $Strain->{'Name'}; $Salvia{$strain} = $Strain->{$strain}; undef $dbm; untie %Salvia; return %Salvia; } sub delete { my $self = shift; my $Strain = shift; my %Salvia; my $dbm = tie %Salvia, 'MLDBM', $dataFile or die $!; delete($Salvia{$Strain}); undef $dbm; untie %Salvia; return; } 1;