Arrays perl中的拆分数组元素

Arrays perl中的拆分数组元素,arrays,perl,split,Arrays,Perl,Split,我有一个Perl数组,其中每个元素都包含用户名和密码,用户名和密码之间用空格分隔。即 @listOfUser = {testuser password1, testuser2 password2, testuser3 password3}; 我想循环遍历数组,并将每个元素拆分为两个字符串。例如,我想获取数组中的第一个元素,并将其分配给名为username的变量,将相应的密码分配给名为passwd的变量 本质上我的问题是我想把数组元素分成两个字符串 我正在使用perl。让我们概括地说。我有一个包

我有一个Perl数组,其中每个元素都包含用户名和密码,用户名和密码之间用空格分隔。即

@listOfUser = {testuser password1, testuser2 password2, testuser3 password3};
我想循环遍历数组,并将每个元素拆分为两个字符串。例如,我想获取数组中的第一个元素,并将其分配给名为username的变量,将相应的密码分配给名为passwd的变量

本质上我的问题是我想把数组元素分成两个字符串

我正在使用perl。让我们概括地说。我有一个包含几个元素的数组

每个元素的格式为:sometext mypassword 基本上每个元素都包含一个用户名,后跟一个空格和一个密码

我希望能够抓住每个元素并拆分元素,以便

my $username = sometext
my $password = password

然后,我将使用foreach循环将这两个字符串传递到函数中

除了已经给出的答案:为什么要使用数组?哈希是更好的解决方案:

for my $elem (@listOfUser) {
    my ($username, $password) = split " ",$elem;
    # do something with $username and $password
}
my %user_password = (
    user1 => 'pass1',
    user2 => 'pass2',
    ....
);

for my $user ( keys %user_password ) {
    print "username: $user, password: $user_password{$user}\n";
}

Paul

无法通过包密码1找到对象方法testuser可能您忘记加载密码1了?在第1行您真正使用的是什么代码?如果您发布工作代码,或者至少是编译的代码,您会得到更好的响应。@sanster,如果帮助是正确的,您应该将其标记为正确的,而不仅仅是感谢。在我看来,做正确的事是最好的奉承方式。虽然随着您学习更多Perl,我个人认为Sinan的答案更像Perl,尽管ennuikiller的答案当然不错。@Joel,Sinan的答案绝对是首选,但是对于一个新手来说,op显然正在考虑这个问题,我认为我的答案更容易理解。完全同意。只是鼓励op标记一些正确的东西,而不仅仅是说谢谢。可能是因为它已经是那种形式,来自文件、数据库或其他构造。否则,散列就是最好的选择。
my %user_password = (
    user1 => 'pass1',
    user2 => 'pass2',
    ....
);

for my $user ( keys %user_password ) {
    print "username: $user, password: $user_password{$user}\n";
}