【问题标题】:What is a good way to read in text?什么是阅读文本的好方法?
【发布时间】:2011-01-24 11:10:18
【问题描述】:

在我的短信脚本中,我读到了要使用这个子程序发送的文本:

my $input = input( "Enter the input: " );

sub input {
    my $arg = shift;
    print $arg if $arg;
    print "\n ";
    chomp( my $in = <> );
    return $in;
}

这样,我只能通过取消所有来纠正错误,直到我遇到错误,而且这只在最后一行。 有没有更好的方法来阅读我的文字?

【问题讨论】:

  • -1 你只读取了一行输入。没有尝试检测和/或更正您发布的代码中的任何错误。
  • 我以为会有一些模块。我现在写了一个 validate_input-routine 但也许我更喜欢“系统(‘vim’,$tempfile)/读入$tempfile。

标签: perl stdin readline


【解决方案1】:

您可以在 input 子例程中使用 while 循环,例如

my $is_valid = 0;
my $input; 

while (!$is_valid) {   
    print "Enter something: ";  
    $input = <>;  
    $is_valid = validate_input($input);
}      

【讨论】:

    【解决方案2】:

    这是读取输入的“正常”方式:

    use strict;
    use warnings;
    
    # ...
    
    while (my $input = <>)
    {
        chomp $input;
        handle_error($input), next unless validate($input);
    
        # do something else with $input...    
    
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-18
      • 2011-05-05
      • 1970-01-01
      • 2021-09-24
      • 2010-09-13
      • 2015-10-17
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      相关资源
      最近更新 更多