我想知道如何从同一输入线获取多个输入。 例如,用户输入:1,2,3。有没有办法拆分它们并将它们放入数组中。
答案 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 );