小编Dan*_* S.的帖子

perl如何用两个替换一个角色的出现

我想翻译两个字符的所有字符实例.通常的做法是:

$text =~ s/a/aa/g;
Run Code Online (Sandbox Code Playgroud)

我只想要一个角色的单个实例加倍.所以aa会留下aa而不会变成aaaa.

我想我必须在s///声明中使用变量,但我在这里或网上找不到任何合适的模式.

perl character substitution

2
推荐指数
1
解决办法
463
查看次数

将数组中的"NULL"字符串更改为数组perl中的undef

我正在从一个数据文件构建一个数组,该数据文件用作参数列表到缓存的SQL语句.这适用于针对Oracle数据库运行的perl DBI.

例如:

@params = ("This", "that", "NULL", "finish");
Run Code Online (Sandbox Code Playgroud)

我需要将此更改为:

@params = ("This", "that", undef, "finish");
Run Code Online (Sandbox Code Playgroud)

我用google搜索了这个,用s ///建议用于字符串替换.我不知道如何为给定条件取消数组中的元素.

arrays perl

2
推荐指数
2
解决办法
1228
查看次数

Mojolicious 快闪信息

我正在基于此处找到的身份验证系统构建一个身份验证系统:

https://github.com/alexanderBendo/Experiments/blob/master/exp0001/mojolicious-auth-session.pl

我遇到的问题是,如果用户输入了错误的用户名或密码,服务器将返回闪现消息,就像他们试图在未登录的情况下访问页面一样。它应该显示无效凭据消息。如果我第二次输入错误凭据,我会收到无效凭据消息。

这是相关的代码:

sub main {
  my $self = shift;
 if ( $self->is_user_authenticated ) {
    $self->redirect_to('/main/cp');
  } else {
    $self->flash( message => 'You must log in to view this page' );
    $self->render('login');
  }
}

sub login {
  my $self = shift;
    my $user = $self->param('name') || q{};
    my $pass = $self->param('pass') || q{};
    if ( $self->authenticate( $user, $pass ) ) {
      $self->redirect_to('/main/cp');
    } else {
      $self->flash( message => 'Invalid credentials!' );
      $self->render('login');
      return;
    }
}
Run Code Online (Sandbox Code Playgroud)

模板:

% layout 'default'; …
Run Code Online (Sandbox Code Playgroud)

flash controller mojolicious

2
推荐指数
1
解决办法
821
查看次数

标签 统计

perl ×2

arrays ×1

character ×1

controller ×1

flash ×1

mojolicious ×1

substitution ×1