小编bea*_*asy的帖子

如何编写惰性访问器

懒惰地构建属性的最佳方法是什么?

class I {
    has $!cheezeburger;

    method cheezeburger {
        given $!cheezeburger {
            when .so {return $_}
            default { 
                # build $cheezeburger, set attribute to it, return 
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是很多cheezeburger.什么可能是一个不那么冗长的方式?

perl6

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

为Perl配置Notepad ++"函数列表"

我正在努力获得notepad ++(v 6.7.5)上的"Fucntion List"功能,这个功能适用于带有类的Perl(或perl用语中的包).默认情况下,仅支持包外的常规子例程.

下面是功能列表配置文件中的XML代码段(位于我的Windows机器上的C:\ Users\user\AppData\Roaming\Notepad ++\functionList.xml).我自己在默认的"function"节点上添加了"classRange"节点.

编辑:由于用户stribizhev,下面是更正的XML

更新:我已经注释掉了"普通"功能部分,因为它导致我的所有方法在功能列表中出现两次.

<parser id="perl_function" displayName="Perl">
    <classRange mainExpr="^package.*?(?=\npackage|\Z)">
        <className>
            <nameExpr expr="\s\K[^;]+"/>
        </className>
        <function mainExpr="^[\s]*(?&lt;!#)[\s]*sub[\s]+[\w]+[\s]*\(?[^\)\(]*?\)?[\n\s]*\{" displayMode="$className->$functionName">
            <functionName>
                <funcNameExpr expr="(sub[\s]+)?\K[\w]+"/>
            </functionName>
        </function>
    </classRange>
    <!--
    <function mainExpr="^[\s]*(?&lt;!#)[\s]*sub[\s]+[\w]+[\s]*\(?[^\)\(]*?\)?[\n\s]*\{" displayMode="$className->$functionName">
        <functionName>
            <nameExpr expr="(sub[\s]+)?\K[\w]+"/>
        </functionName>
    </function>
    -->
</parser>
Run Code Online (Sandbox Code Playgroud)

这方面的文档就在这里.

regex xml perl notepad++

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

保存内容时LWP :: UserAgent内存使用情况

编辑:下面的问题是在AWS ec2微实例上的库存Perl 5.16.3上生成的.它最终通过安装和切换到Perl 5.24.3来解决perlbrew.


LWP::UserAgent 保存内容时,似乎会导致某种内存泄漏.

use v5.10;
use strict;
use warnings;

use IO::Socket::SSL;
use LWP::UserAgent;
use Memory::Usage;
use Time::HiRes 'usleep';

my $ua = LWP::UserAgent->new;
my $mu = Memory::Usage->new;
$ua->ssl_opts(SSL_ocsp_mode => SSL_OCSP_NO_STAPLE); ## disable OCSP stapling
for (1..50) {
    $mu->record("before request: $_");
    $ua->get('http://www.wikipedia.org/wiki/Special:Random', ':content_file' => 'temp.html');
    usleep 50000;
}

$mu->dump();
Run Code Online (Sandbox Code Playgroud)

输出:

  time    vsz (  diff)    rss (  diff) shared (  diff)   code (  diff)   data (  diff)
     0  213964 ( 213964)  25112 ( 25112)   7532 (  7532)      8 …
Run Code Online (Sandbox Code Playgroud)

perl lwp-useragent

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

正则表达式 - 匹配字符串不包含一个组,DOES包含另一个组

例如,匹配不包含"foo"但包含"bar"的字符串的正则表达式.我没有使用两个表达式的奢侈.我需要在一个表达式中完成它.

例:

"这是foo baz酒吧" - 不应该匹配
"这是foo baz" - 不应该匹配
"这是baz酒吧" - 应该匹配

我在Perl,fwiw

regex perl

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

标签 统计

perl ×3

regex ×2

lwp-useragent ×1

notepad++ ×1

perl6 ×1

xml ×1