从标准输入得到数组的疑问!(结帖)

从标准输入得到数组的疑问!(结帖)

从标准输入读入一行,如果这行有N个元素,
如何得到这N个元素组成的数组?

比如输入的是1,2,3 2, 我想得到含有4个元素的数组!

[Copy to clipboard] [ - ]
CODE:
chomp ($sel=<STDIN>);
print $sel,"\n";
@sel=join(",",split(",",$sel));
print scalar @sel;  ====> 这个是1,也就是数组中只有一个元素
print $sel[0];

@sel=split(",",$sel);



QUOTE:
原帖由 FinalBSD 于 2008-1-31 13:34 发表
@sel=split(",",$sel);

我试过,一样的结果


QUOTE:
原帖由 linuxnextyear 于 2008-1-31 13:40 发表


我试过,一样的结果

你看错了吧?你是不是把$sel[0]看成个数了?


QUOTE:
原帖由 FinalBSD 于 2008-1-31 13:42 发表

你看错了吧?你是不是把$sel[0]看成个数了?

print $sel[0] 把所有内容打输出了,所以@sel只有一个元素.
chomp ($sel=<STDIN>);
@sel=split(",",$sel);
print scalar @sel;

不会有错啊。


QUOTE:
原帖由 FinalBSD 于 2008-1-31 13:46 发表
chomp ($sel=);
@sel=split(",",$sel);
print scalar @sel;

不会有错啊。

哦,我知道哪里错了,我加了一个join出错了


[Copy to clipboard] [ - ]
CODE:
@name=qw( fred betty barney dino Wilma pebbles bamm-bamm );
chomp ($sel=<STDIN>);
$sel =~ s/ /,/g;
print $sel;
@sel=split(",",$sel);
print "length---->",scalar @sel,"\n";
print "\@sel---->",@sel,"\n";
foreach $n (@sel){
        print $n,"----";
        print $name[$n-1]," ";
}