Lokeey wrote:
> 
> I'm writing this script to remove users from a file, the sudoers file, to be
> more specific.
> 
> Here is what I have so far, not sure where to go from here.
> 
> *#!/usr/bin/perl -w

There's a star before your #! Is it a typing mistake?

Also,

  use strict;

or there is little point in declaring variables with 'my'. And

  use warnings;

is better than the -w command-line option.

> # this script removes a user from sudoers file

I suggest you write a simple usage help in here, for instance

die <<USAGE unless @ARGV;
  This program should be run with command-line parameters like this:
    :
    :
USAGE

> my $sites = $ARGV[0];
> my $user = $ARGV[1];

Fine. But you don't use $sites or $user again. What does your program do 
exactly?

> for my $site ($#ARGV[1]){
>   open FILE, "$_/local/etc/sudoers" or die "cannot open sudoers for $sites: 
> $!";

You have written a 'for' iterator, but its list is $#ARGV[1] which doesn't make
any sense. I doubt if it will compile. Was $ARGV[0] supposed to be a list of
sites somehow?

> print "Enter username you wish to remove from $sites sudoers.\n";
> 
>   while (<FILE>) {s/$_//}
>   close FILE;
> }*

(Ah, and another star. Delimiters for pasted code somehow?)

You prompt for a username, even though you have already used $ARGV[1] for $user.
And you don't read from STDIN to see what the user typed in response to the 
prompt.

I suggest you forget about @ARGV and prompting for and retrieving input. Hard
code a case where there is only a single site and username to be removed and get
that working, with our help as necessary. Then you can expand your program to
take parameters and prompt for input if that is what you want.

HTH,

Rob


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to