【发布时间】:2018-04-23 23:08:54
【问题描述】:
我正在做一个项目,我需要从用户那里获取输入,然后将其切割成单独的字符以供以后使用(将它们向上移动一个字符),但我无法将输入输入一个数组并将其打印出来以检查它是否在那里。目前我的代码是
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $count=0; # this block just creates variables
my $userinput;
print "Input?";
$userinput=<STDIN>; # this block just gets input and creates the array
my @userarray=();
while(<@userarray>) {
@userarray = split('', $userinput); #this block should loop as many times as there are characters in the input while separating the characters
}
print Dumper(@userarray); #this should print the array
如果他们的输入是“房子”,我的输出应该是这样的
@userarray[0]= "h"
@userarray[1]= "o"
@userarray[2]= "u"
@userarray[3]= "s"
@userarray[4]= "e"
但是,当我在其中输入某些内容时,尽管有严格的警告并且没有返回任何内容,但只会打印出一个空白屏幕。我哪里做错了?
【问题讨论】:
-
while(<@userarray>)在空数组上看起来有问题 -
你需要分配
@userarrayoutside循环 -
@MattJacob 这是一个拆分..根本不需要循环,对吗?
-
@zzxyz 当然,但 OP 暗示他/她出于某种原因想要单独迭代每个字符。但我同意......
split只需要执行一次(并且可能不会掩盖第一个参数是正则表达式的事实) -
我删除了循环,它现在就像一个魅力
标签: arrays perl data-dumper