Perl接受多个输入并放入数组

时间:2014-04-02 17:03:59

标签: perl input

我想知道如何从同一输入线获取多个输入。 例如,用户输入:1,2,3。有没有办法拆分它们并将它们放入数组中。

2 个答案:

答案 0 :(得分:4)

来自perlrequick

To extract a comma-delimited list of numbers, use

$x = "1.618,2.718, 3.142";
@const = split /,\s*/, $x; # $const[0] = '1.618'
                           # $const[1] = '2.718'
                           # $const[2] = '3.142'

",\ s *"是一个正则表达式,意思是一个逗号,后跟任意数量的空格

答案 1 :(得分:0)

This answer绝对正确。如果你想考虑用户在逗号之前添加意外空格(输入如“1,2,3”),你可以使用

split /\s*,\s*/, $inputstring

所以在具体情况下,你想要的是

chomp(my $inputstring = <STDIN>);
my ($a, $b, $c) = split( /\s*,\s*/, $inputstring );

chomp从捕获的输入中删除尾随换行符。 split中的括号是可选的,但要明确我们提供split的参数。最后,此代码仅查看前三个输入。如果您想更全面地捕获所有这些,请使用

chomp(my $inputstring = <STDIN>);
my @inputarray = split( /\s*,\s*/, $inputstring );