gpt4 book ai didi

perl - Mojolicious 和 Passwd::Unix

转载 作者:行者123 更新时间:2023-12-04 22:46:09 25 4
gpt4 key购买 nike

我试图在这个 perl 脚本上返回 Unix 用户列表。我正在使用带有 Passwd::Unix 的 Mojolicious 框架。

引用:

  • Mojolicious (http://metacpan.org/pod/Mojolicious)
  • 密码::Unix ( http://metacpan.org/pod/Passwd::Unix )

  • 那是我的代码:

    测试.pl
    #!/usr/bin/env perl
    use Mojolicious::Lite;
    use Passwd::Unix;

    # Instance
    my $pu = Passwd::Unix->new();

    get '/' => sub {
    my $self = shift;
    my $users = $pu->users;

    $self->stash(
    users => $users
    );
    } => 'test';

    app->start;

    __DATA__

    @@ test.html.ep
    <ul>
    <% foreach my $user ($users) { %>
    <li><%= $user %></li>
    <% } %>
    </ul>

    但它不会返回用户,而是只打印用户总数。

    Test file

    最佳答案

    $pu->users返回所有用户的数组。当您将该返回值分配给标量时

    my $users = $pu->users;

    你把数组放在标量上下文中,它返回数组的大小。

    相反,将结果分配给一个数组,并将对该数组的引用放入存储中:
    my @users = $pu->users;
    $self->stash( users => \@users );

    或者,您可以使用这样的匿名数组引用:
    $self->stash( users => [ $pu->users ] );

    在您的模板中,您必须取消对数组的引用才能对其进行循环:
    __DATA__

    @@ test.html.ep
    <ul>
    <% foreach my $user (@$users) { %>
    <li><%= $user %></li>
    <% } %>
    </ul>

    关于perl - Mojolicious 和 Passwd::Unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17392736/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com