M
mjl69
package MyClass;
use warnings;
use strict;
sub new
{
my $invocant = shift;
my $dbh = shift;
my $class = ref($invocant) || $invocant; # Object or class name
my $self = { };
$self->{_error} = '';
bless($self, $class);
return $self;
}
sub error
{
my $invocant = shift;
return $invocant->{_error};
}
### Is error handling ok or...
sub my_method
{
my $invocant = shift;
my $arg = shift;
if ($arg == 1)
{
eval
{
#do stuff
};
if ($@)
{
$invocant->{_error} = $@;
return undef;
}
else {return 'success'}
}
elsif ($arg ==2)
{
eval
{
#do stuff
};
if ($@)
{
$invocant->{_error} = $@;
return undef;
}
else {return 'success'}
}
elsif ($arg == 3)
{
eval
{
#do stuff
};
if ($@)
{
$invocant->{_error} = $@;
return undef;
}
else {return 'success'}
}
}
### Is this better?
sub my_method2
{
my $invocant = shift;
my $arg = shift;
eval
{
if ($arg == 1)
{
#do stuff
}
elsif ($arg ==2)
{
#do stuff
}
elsif ($arg == 3)
{
#do stuff
}
};
if ($@)
{
$invocant->{_error} = $@;
return undef;
}
else {return 'success'}
}
### Or, does it just depend on the situation?
### Thanks for advice - mjl
use warnings;
use strict;
sub new
{
my $invocant = shift;
my $dbh = shift;
my $class = ref($invocant) || $invocant; # Object or class name
my $self = { };
$self->{_error} = '';
bless($self, $class);
return $self;
}
sub error
{
my $invocant = shift;
return $invocant->{_error};
}
### Is error handling ok or...
sub my_method
{
my $invocant = shift;
my $arg = shift;
if ($arg == 1)
{
eval
{
#do stuff
};
if ($@)
{
$invocant->{_error} = $@;
return undef;
}
else {return 'success'}
}
elsif ($arg ==2)
{
eval
{
#do stuff
};
if ($@)
{
$invocant->{_error} = $@;
return undef;
}
else {return 'success'}
}
elsif ($arg == 3)
{
eval
{
#do stuff
};
if ($@)
{
$invocant->{_error} = $@;
return undef;
}
else {return 'success'}
}
}
### Is this better?
sub my_method2
{
my $invocant = shift;
my $arg = shift;
eval
{
if ($arg == 1)
{
#do stuff
}
elsif ($arg ==2)
{
#do stuff
}
elsif ($arg == 3)
{
#do stuff
}
};
if ($@)
{
$invocant->{_error} = $@;
return undef;
}
else {return 'success'}
}
### Or, does it just depend on the situation?
### Thanks for advice - mjl