I am trying to make CLI. when the script starts the user will type in some command and script performs the required action.
i have used hashes for purpose of efficiency. what i do is that the command is the key of the hash and the value of the hash is a reference to a sub routine.
now i cant figure out how to pass arguments to such functions.
here is my code
Code:
sub settime($){ print "nMetrics>You have entered the settime command\n";
print "nMetrics>The argument given is $_[0]\n";}
sub showtime{ print "nMetrics>You have entered the show time command\n";}
sub error{ print "nMetrics>Invalid command line options\n";}
$myhash{"set time"}=\&settime;
$myhash{"show time"}=\&showtime;
$myhash{default}=\&error;
print "Welcome to nMetrics application monitor\n";
print "Please type in a command\n";
label: print "nMetrics>";
while(<STDIN>)
{
chomp;
if (exists $myhash{$_})
{$myhash{$_}->();}
else
{$myhash{default}->();}
goto label;
}
now with this code i can only type in a command. if the user also has to pass some arguments with the command i cant do that.
how will i pass arguments to my sub routines?