如何获取用户输入并在Perl脚本中使用该值



我需要做以下事情:

Print "User please enter the age, sex, blah_blah" > $age>$sex>$blah_blah;

print "the current user stats are- age = $age, sex = $sex";
my $rand;
if ($blah_blah > $rand)
      {
      do something
      }
else 
      {
      something else
      }

有人可以帮助我从用户输入,然后能够在脚本中使用该值吗?

我也希望能够运行这个脚本:

perl script1 -age -sex -blah_blah

我的意思是,而不是要求用户提供这些值,我可以简单地在命令行中输入这些,我的脚本仍然可以像上面一样使用这些吗?

这可能吗?如果是这样,我是否也可以添加-help,即perl script1 -help,如果这可以从脚本中打印出一些注释?

试试这个命令行选项和help ..run as..在my params的位置输入你想要的年龄,性别,地址

perl test.pl -pass 'abcd' -cmd 'abcd' -path 'paths' -value 'testde'

#!/usr/bin/perl

use Getopt::Long;
GetOptions ("value=s" => $value,    # string
              "cmd=s"   => $cmd,      # string
              "pass=s"  => $pass,# string
              "help"=> $help ) 
or die("Error in command line argumentsn");

if ( $help ){
        print " this is a test module for help please bare with it ";
        exit;
}
 print "$cmd,$passn";

Perl模块IO::Prompt::Tiny对于用提示消息提示、接受可移植输入或在检测到非交互式运行时时接受默认值非常有用。

将它与Getopt::Long结合起来接受命令行输入。

您的程序可能会检查Getopt::Long选项的定义,并且对于命令行中没有提供的每个选项,调用prompt()

使用信息和文档被Perl模块Pod::Usage.

下面是一个例子:

use strict;
use warnings;
use IO::Prompt::Tiny 'prompt';
use Pod::Usage;
use Getopt::Long;

my( $age, $sex, $blah, $help, $man );
GetOptions(
  'age=s'  => $age,
  'sex=s'  => $sex,
  'blah=s' => $blah,
  'help|?' => $help,
  'man'    => $man,
) or pod2usage(2);
pod2usage(1) if $help;
pod2usage(-exitval => 0, -verbose => 2) if $man;

$age  //= prompt( 'Enter age: ', '0'          );
$sex  //= prompt( 'Enter sex: ', 'undeclared' );
$blah //= prompt( 'Blab now:  ', ''           );
print "Your age was entered as <$age>, sex declared as <$sex>, and you ",
      "chose to blab about <$blah>.n";
__END__
=head1 User Input Test
sample.pl - Using Getopt::Long, Pod::Usage, and IO::Prompt::Tiny
=head1 SYNOPSIS
    sample.pl [options]
        Options:
          -help        Brief help message.
          -age n       Specify age.
          -sex s       Specify sex.
          -blah blah   Blab away.
=head1 INTERACTIVE MODE
If C<-age>, C<-sex>, and C<-blah> are not supplied on the command line, the
user will be prompted interactively for missing parameters.
=cut

Getopt::Long和Pod::Usage是Perl的核心模块;它们随每个Perl发行版一起发布,所以您应该已经拥有它们了。IO::Prompt::Tiny是在CPAN上,虽然它有一些非核心的构建依赖,但它的运行时依赖是核心的,而且非常轻量级。

相关内容

  • 没有找到相关文章

最新更新