perl中的split数组元素

时间:2010-11-06 23:33:39

标签: arrays perl split

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

@listOfUser = {testuser password1, testuser2 password2, testuser3 password3};

我想循环遍历数组并将每个元素拆分为两个字符串。例如,我想获取数组中的第一个元素,并将其分配给名为username的变量以及名为passwd的变量的相应密码。

基本上我的问题是我想将数组元素拆分成两个字符串!


我正在使用perl。我们一般来说吧。我有一个包含几个元素的数组。

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

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

my $username = sometext
my $password = password

然后我将使用foreach循环将两个字符串传递给函数

3 个答案:

答案 0 :(得分:7)

for my $elem (@listOfUser) {
    my ($username, $password) = split " ",$elem;
    # do something with $username and $password
}

答案 1 :(得分:5)

use strict; use warnings;
use YAML;

my @users = (
    'testuser password1',
    'testuser2 password2',
    'testuser3 password3',
);

@users = map { my ($u, $p) = split; { user => $u, pass => $p } } @users;

print Dump \@users;

答案 2 :(得分:0)

除了已经给出的答案:为什么要使用数组?哈希会恕我直言是一个更好的解决方案:

my %user_password = (
    user1 => 'pass1',
    user2 => 'pass2',
    ....
);

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