Jay Grant wrote:
> 
> Hi,

Hello,

> Please forgive this VERY basic perl question .. but I am trying to write a
> perl menu script but I can't seem to get the commands to run. I can get a
> normal print to work, but not the unix commands (date, who, etc.)  Here is
> the program ... what am I doing wrong?
> 
> #!/usr/local/bin/perl
> $date = "/usr/bin/date";
> print "\n            COMMAND MENU\n";
> print "\n     a.  Current date and time\n";
> print "\n     b.  Users currently logged in\n";
> print "\n     c.  Name of the working directory\n";
> print "\n     d.  Contents of the working directory\n";
> print "\n Enter a, b, c, or d:\n";
> chomp ($line = <STDIN>);
> if ($line eq 'a') {
>     my $date;
>   }
>    elsif  ($line eq 'b') {
>     print "\n B is close\n";
>   }
>    elsif  ($line eq 'c') {
>     print "\n C is not the answer\n";
>   }
>    elsif  ($line eq 'd') {
>     print "\n D isn't it either\n";
>   }
>   else {
>    print "\n Try again\n"
> }
> 
> Thanks for any input.


Something like this should work:

#!/usr/local/bin/perl -w
use strict;
use Cwd;

while ( 1 ) {
    print "\n            COMMAND MENU\n";
    print "\n     a.  Current date and time\n";
    print "\n     b.  Users currently logged in\n";
    print "\n     c.  Name of the working directory\n";
    print "\n     d.  Contents of the working directory\n";
    print "\n     q.  Quit\n";
    print "\n Enter a, b, c, d, or q:\n";

    chomp( my $line = <STDIN> );

    if ( $line eq 'a' ) {
        print scalar localtime, "\n";
        }
    elsif ( $line eq 'b' ) {
        system 'who';
        }
    elsif ( $line eq 'c' ) {
        print cwd, "\n";
        }
    elsif ( $line eq 'd' ) {
        system 'ls', '-l';
        }
    elsif ( $line eq 'q' ) {
        last;
        }
    else {
        print "\n Try again\n";
        }
    }

__END__



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to