The $value in unsetValue is ok. The command sent to the firewall will end up being <unset object name> or something like "unset address Autogen_x".
The regex used to check for the error is a little flawed though, it should be looking for "^-". I updated the methods with this, but the script still exits after the first command. The module does report errors correctly now though.
I've tried die, eval, and even clucking exit, at tye's suggestion. The script just exits silently.
Updated methods for Net::Telnet::Netscreen:
sub setValue {
my ($self,$setting, $value) = @_;
return $self->error("No setting specified") unless $setting;
return $self->error("No value specified") unless $value;
my @results=$self->cmd("set ".$setting." ".$value);
foreach my $result (@results) {
if ($result =\/^-/) { return $self->error($result);
print STDERR "<<$result>>\n"; }
}
return 1;
}
sub unsetValue {
my ($self,$setting, $value) = @_;
return $self->error("No setting specified") unless $setting;
return $self->error("No value specified") unless $value;
my @results=$self->cmd("unset ".$setting." ".$value);
foreach my $result (@results) {
if ($result =\/^-/) { return $self->error($result);
print STDERR "<<$result>>\n"; }
}
return 1;
}