I know the format and scripting are probably pretty backwards but I
seem to recall it being important to have a `return' line in a
function.
The code below was a script by itself but now I need to turn it into a
function inside a larger script... I've done something that sort of
works but fails on a specific file name that looks like `.#somefile'.
I'll show the code the way I've tried to turn it into a sub routine.
So, I'd like comments both on how to write this more like a proper sub
routine and any other why ideas.
What the sub is supposed to do is plow thru a couple of directories and
reset the proper owner and group after some other operations have
changed them.
Its called like this in a getops operation:
if($opt_o ) {
if (@ARGV) {
usage();
print "The \`-o' flag must be used by itself and\n",
" \`-o' flag requires user to be root .. exiting\n ";
exit;
}
chOwnGrp();
exit;
}
sub chOwnGrp {
use File::Find;
my $buffer = '/merb';
my $module = '/usr/local/common/merc';
my $uname = $ENV{'LOGNAME'};
my $uid = '1000';
my $gid = '1050';
if ($uname =~ /root/) {
print "Would you like to set owner:group on BUFFER and MODULE?\n",
"If so, we will run chown -R $uid:$gid $buffer and\n",
"chown -R $uid:$gid $module\n",
"[y/n] > ";
my $answer = <STDIN>;
if ($answer =~ /^y$/) {
find(
sub {
chown $uid, $gid, $_ or warn "could not chown '$_': $!";
},
$buffer, $module
);
}
} else {
print "You must be root to run with this flag (-o) effectively..
exiting\n";
print "Not root - tripped at line: <" . __LINE__ . ">\n";
exit;
}
}
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/