You see, I want to rewrite my current subroutines and allow for default values, or null values. I was trying the code above, but can't figure out how to get it to work. You see, the command changes based upon input.
Sometimes the command will be:
/usr/bin/passwd -n 1 -w 5 -x 30
Sometimes the command will be:
/usr/bin/passwd -n 1 -w 5 -x 60
and sometimes the command will be:
/usr/bin/passwd -x -1
I would like to set default values for n (1), w(5) and x(60), but also allow them to be null, like in the case of the last command... Just trying to figure out the best way to do this.
Current Code:
sub SUNPwdAging {
my $loginid = shift;
my $pwminlife = shift;
my $pwmaxlife = shift;
my $pwdwarn = shift;
my $command;
my $match_num;
my $error;
my $match;
my $before;
my $after;
my $passwd = "/usr/bin/passwd";
my $options = "-n $pwminlife -x $pwmaxlife -w $pwdwarn";
# Define full command
$command = "$passwd $options $loginid";
# Set the Aging
$Login::rsh->clear_accum();
print $Login::rsh "$command\; echo \$?\r";
($match_num,$error,$match,$before,$after)=
$Login::rsh->expect($Login::TIME_OUT,
'-re', '(?s).*\r\n[1-7]\r?$'
,'-re', '(?s).*\r\n0\r?$'
);
if ($match_num == 1) {
$result = "FAILED: ".$match.": ".$after;
}
elsif ($match_num == 2) {
$result = "SUCCESSFUL";
}
elsif (defined($error)) {
$result = "FAILED: ".$error;
}
else {
$result = "FAILED: Unknown error occurred.";
}
return $result;
}
Would like it to be something more like this...
sub SunPwdAging {
my %defaults = (qw(n 1 w 5 x 60))
my %args = (%defaults, @_);
my $result;
....
But then, how do I setup the command to even use what's passed to the subroutine? |