小编Ovi*_*vid的帖子

如何使用vim在Perl中自动填充POD?

我正在尝试用vim编辑文件并自动折叠POD(只是POD,而不是Perl).

我无法让它工作,所以我尝试禁用我的所有插件和我的.vimrc:

__PRE__

我假设我的POD在我的项目中以"= head1","= head2"或"= head3"开头.他们总是以'= cut'结束.

然后,在命令模式下,我键入以下类型:

__PRE__

这是识别POD,因为POD变为白色,而语法高亮显示的其余部分仍然存在,但它不会折叠POD.

我已经尝试了以上各种组合:

__PRE__

和:

__PRE__

但没有运气.

我知道折叠本身是有效的,因为我可以手动突出显示线条并输入'zF'并正确折叠.

任何人都可以阐明这一点吗?更重要的是,我该如何调试呢?

vim perl folding

5
推荐指数
1
解决办法
1029
查看次数

对于 Devel::Cover 覆盖特定路径中的所有文件

我的任务是清理一些写得很差的遗留代码,但测试数量惊人。其中一些测试在如下文件中运行代码:

fcgi/*.fcgi
Run Code Online (Sandbox Code Playgroud)

我非常想将这些包括在我的报道中。其实,我很想以确保我可以包括一切(无论扩展名)中lib/fcgi/以及utils/没有任何其他目录。

这是我的众多尝试之一:

HARNESS_PERL_SWITCHES=-MDevel::Cover=+inc,fcgi,+inc,lib,+inc,util prove -rl t
Run Code Online (Sandbox Code Playgroud)

失败!

我还尝试过创建简单的 Build.PL 或 Makefile.PL 脚本,并在运行诸如“cover -test”或“./Build testcover”之类的内容时不断收到“未定义测试”。

这是 Devel::Cover 0.88 和 perl 版本 5.12.2

testing perl devel-cover

5
推荐指数
1
解决办法
541
查看次数

在命令行上阅读node.js文档

我对节点相对较新,有一天,当我在没有网络连接的情况下对其进行黑客攻击时,我想http从命令行阅读该模块的文档。在 Python 或 Perl 中,我只是使用pydocorperldoc和我想要阅读其文档的模块的名称,但在我的一生中,我无法弄清楚如何为 node.js 执行此操作,现在,在网上阅读有关此内容的信息似乎并没有给我小小的大脑带来太多启发。

那么,我如何阅读(安装?)节点文档,特别是对于非核心模块(例如角度),特别是如果我在一个偏僻的旧农舍中并且没有“网络连接”?

node.js

5
推荐指数
1
解决办法
247
查看次数

在Perl Catalyst URL中用连字符替换下划线

我们正在寻找将CamelCase转换为camel-case和下划线为连字符的选项,并希望有人可以提供一些强有力的例子.(出于SEO原因使用连字符).

特别:

在Catalyst中使用MMORPG并厌倦了写这样的事情:

sub travel_to  ( $self, $c, $star ) : Path('travel-to') Args(1)  { ... }
Run Code Online (Sandbox Code Playgroud)

或这个:

package Veure::Controller::Area::StorageLocker {
    ....
    sub index ( $self, $c ) : Path('/area/storage-locker') { ... }
}
Run Code Online (Sandbox Code Playgroud)

更新:因为有一些混乱,我的意思是我们更愿意让开发者写这个:

# getting rid of Args() would be nice, but sigs don't have introspection
sub travel_to  ( $self, $c, $star ) : Args(1)  { ... }
Run Code Online (Sandbox Code Playgroud)

或这个:

package Veure::Controller::Area::StorageLocker {
    ....
    sub index ( $self, $c ) { ... }
}
Run Code Online (Sandbox Code Playgroud)

这很重要,因为对于SEO的立场,下划线而不是连字符可以显着提高您的SEO.由于不得不做额外的粗暴工作以始终强制连字符,开发人员忘记这样做,我们不断浪费钱回去,不得不重写代码,忘记这个警告.这是我们应该能够自动完成的事情.

perl catalyst

5
推荐指数
1
解决办法
191
查看次数

在Debian上,OS X上的Perl Unicode测试失败

我有以下测试:

use Test::More;
use Lingua::EN::NameCase 'nc';
use utf8;
my $output = Test::Builder->new->todo_output;
binmode $output, ':encoding(UTF-8)';
$output = Test::Builder->new->failure_output;
binmode $output, ':encoding(UTF-8)';

my $name = 'Lintão';
is nc($name), $name, 'nc() should not change a properly namecased name';
diag nc($name);

done_testing;
Run Code Online (Sandbox Code Playgroud)

在Mac OS X上使用Perl 5.10.1,我得到以下输出:

nc.t ..
ok 1 - nc() should not change a properly namecased name
1..1
# Lintão
ok
All tests successful.
Files=1, Tests=1,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.04 cusr  0.00 csys =  0.07 …
Run Code Online (Sandbox Code Playgroud)

unicode perl

4
推荐指数
1
解决办法
223
查看次数

使用 github actions 在 Windows 上测试 Perl

我已经将MooseX::Extended发布到了 CPAN(此处为 github 存储库)。

我正在尝试设置 github 操作,并且 linux 测试运行得很好。但是,(Windows 因以下错误而失败

Configuring true-v1.0.2 ... OK
==> Found dependencies: Function::Parameters
--> Working on Function::Parameters
Fetching http://www.cpan.org/authors/id/M/MA/MAUKE/Function-Parameters-2.001003.tar.gz ... OK
Configuring Function-Parameters-2.001003 ... OK
Building Function-Parameters-2.001003 ... OK
Successfully installed Function-Parameters-2.001003
! Installing true failed. See C:\Users\RUNNER~1\.cpanm\work\1653412748.5640\build.log for details. Retry with --force to force install it.
Building true-v1.0.2 ... FAIL
Run Code Online (Sandbox Code Playgroud)

当然,我无法看到这一点C:\Users\RUNNER~1\.cpanm\work\1653412748.5640\build.log来理解发生了什么。

true模块通过了 Windows 上的 CPAN 测试人员测试,因此我不知道为什么它在 Github Actions 中失败。

我的工作流程如下所示:

Configuring true-v1.0.2 …
Run Code Online (Sandbox Code Playgroud)

windows perl github-actions

4
推荐指数
1
解决办法
410
查看次数

DBIx :: Class:仅选择has_many大于零的结果

在我们的MySQL数据库中,我有一个third_party_accounts表和它has_many third_party_campaigns.但是,并非所有帐户都有广告系列.我想要做的DBIx::Class只是选择那些有一个或多个广告系列的帐户.最简单的是我发现如下:

my $third_party_account_rs = $schema->resultset('ThirdPartyAccount');
my $with_campaigns_rs      = $third_party_account_rs->search(
    { third_party_account_id => \'IS NOT NULL' },
    {
        join     => 'third_party_campaigns',
        group_by => 'me.id',                                                                                                                                 
    }
);
Run Code Online (Sandbox Code Playgroud)

对于相关的数据库列:

mysql> select id from third_party_accounts;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+
3 rows in set (0.00 sec)

mysql> select id, third_party_account_id from third_party_campaigns;
+----+------------------------+
| id | third_party_account_id |
+----+------------------------+
|  1 |                      1 |
|  2 | …
Run Code Online (Sandbox Code Playgroud)

mysql perl orm dbix-class

3
推荐指数
1
解决办法
374
查看次数

在Perl中测试查询字符串unicode处理

我正在尝试编写一个测试查询字符串解析的例子,当我遇到Unicode问题时.简而言之,字母"Omega"(Ω)似乎没有被正确解码.

  • Unicode:U + 2126
  • 3字节序列:\ xe2\x84\xa6
  • URI编码:%E2%84%A6

所以我写了这个测试程序验证我可以用URI :: Encode"解码"unicode查询字符串.

use strict;                                                                                                                                                                    
use warnings;
use utf8::all;    # use before Test::Builder clones STDOUT, etc.
use URI::Encode 'uri_decode';
use Test::More;

sub parse_query_string {
    my $query_string = shift;
    my @pairs = split /[&;]/ => $query_string;

    my %values_for;
    foreach my $pair (@pairs) {
        my ( $key, $value ) = split( /=/, $pair );
        $_ = uri_decode($_) for $key, $value;
        $values_for{$key} ||= [];
        push @{ $values_for{$key} } => $value;
    }
    return \%values_for;
}

my $omega …
Run Code Online (Sandbox Code Playgroud)

testing unicode perl query-string

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