小编nov*_*cik的帖子

wc -l给出了错误的结果

我从wc -l命令得到了错误的结果.经过很长时间:(检查发现问题的核心,这里是模拟:

$ echo "line with end" > file
$ echo -n "line without end" >>file
$ wc -l file
       1 file
Run Code Online (Sandbox Code Playgroud)

这是两行,但缺少最后一行"\n".任何简单的方案?

bash wc

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

什么匹配这个正则表达式:qr /(?!)/;

在一个源代码中,我发现了这个正则表达式:

qr/(?!)/;
Run Code Online (Sandbox Code Playgroud)

我根本无法弄清楚这匹配的是什么.

老实说,绝对不明白什么意味着A零宽度负前瞻断言. - 我在perlre中找到了什么.:(

有人可以用人类语言解释吗?:)

regex perl

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

使用perl从文本文件中获取唯一的随机行(在每个脚本运行时)

有一个像下一个名为"input.txt"的文本文件

some field1a | field1b | field1c
...another approx 1000 lines....
fielaNa | field Nb | field Nc
Run Code Online (Sandbox Code Playgroud)

我可以选择任何字段分隔符.

需要一个脚本,每个离散运行的内容将从该文件中获得一个唯一(从不重复)的随机行,直到使用所有行.

我的解决方案:我在文件中添加了一列,所以有

0|some field1a | field1b | field1c
...another approx 1000 lines....
0|fielaNa | field Nb | field Nc
Run Code Online (Sandbox Code Playgroud)

并使用下一个代码处理它:

use 5.014;
use warnings;
use utf8;
use List::Util;
use open qw(:std :utf8);
my $file = "./input.txt";

#read all lines into array and shuffle them
open(my $fh, "<:utf8", $file);
my @lines = List::Util::shuffle map { chomp $_; $_ } <$fh>;
close $fh; …
Run Code Online (Sandbox Code Playgroud)

perl

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

粘贴tee命令的结果

这只是一个假设的问题 - 没有解决任何真正的问题 - 只是学习bash.

使用该tee命令可以将输出拆分为更多不同的流,例如:

command1 | tee >(commandA1 | commandA2 >file1) >(commandB1 | commandB2 >file2) >file0
Run Code Online (Sandbox Code Playgroud)

以图形方式完成下一步

                  ---commandA1---commandA2--> file1
                 /
command1---tee-------> file0
                 \
                  ---commandB1---commandB2--> file2
Run Code Online (Sandbox Code Playgroud)

现在,用paste命令就可以了

paste file1 file2 | command3
Run Code Online (Sandbox Code Playgroud)

但我又可以重定向到不同程序的粘贴输出,例如:

paste <(ls) <(ls) | command3
Run Code Online (Sandbox Code Playgroud)

问题是:有可能将两个流合并为一个,类似于

                  ---commandA1---commandA2---
                 /                           \
command1---tee-------> file0                  --- paste---command3
                 \                           /
                  ---commandB1---commandB2---
Run Code Online (Sandbox Code Playgroud)

Ps:没有中间文件的意思......

bash

9
推荐指数
1
解决办法
252
查看次数

不兼容的Perl对象并为convert_blessed构造TO_JSON方法

这个答案中,我找到了一个简单TO_JSON方法的建议,这是将祝福对象序列化为JSON所必需的.

sub TO_JSON { return { %{ shift() } }; }
Run Code Online (Sandbox Code Playgroud)

有人可以详细解释它是如何工作的吗?

我改成了:

sub TO_JSON {
        my $self = shift;         # the object itself – blessed ref
        print STDERR Dumper $self;

        my %h = %{ $self };       # Somehow unblesses $self. WHY???
        print STDERR Dumper \%h;  # same as $self, only unblessed

        return { %h };    # Returns a hashref that contains a hash.
        #return \%h;      # Why not this? Works too…
}
Run Code Online (Sandbox Code Playgroud)

很多问题...... :(简单地说,我无法理解3行Perl代码.;(

我需要 …

perl moose moo

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

ImageMagick绘制了一系列具有不断增长的发光效果的图像

我正在学习ImageMagick.我想在使用命令后创建(使用ImageMagick)一系列图像

convert -delay 0 -loop 0 frame*.gif final.gif
Run Code Online (Sandbox Code Playgroud)

给出结果就像附加的GIF动画一样.

在此输入图像描述

我想自己编写一系列命令,但我需要一个提示,哪些效果和绘图指令会给我最相似的结果,所以我正在寻找类似的东西:

  • 画一个圆圈
  • 模糊吧
  • 保存框架
  • 增加圆的半径
  • 重复

但是,可能上述还不够.

这个问题是否很模糊,或者有人能给我一个暗示吗?

imagemagick

7
推荐指数
1
解决办法
838
查看次数

冒号在子程序定义中意味着什么?

这个源代码中,我找到了这个sub定义.

sub upload_file : Chained( 'base' ) : PathPart( 'upload-file' ) : Args( 0 ){
Run Code Online (Sandbox Code Playgroud)

我不明白那些:冒号和参数是什么意思.有人能指点我一些文件吗?

perl

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

带继承的Perl模板

在Perl世界中存在任何具有模板继承的模板系统?

只需检查维基百科比较 _of_web_template_engines (真正不完整的列表) - 这里没有列出任何.

继承=支持从父模板继承布局的能力,分别覆盖父模板内容的任意部分.

意思是像python的Jinja2:

#body.html
<body>
   {% block content %}
   <!-- the content go here -->
   {% endblock %}
</body>

#hi.html
{% extends "body.html" %}
{% block content %}
<h1>Hi!</h1>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

渲染hi.html给出

 <body>
 <h1>Hi!</h1>
 </body>
Run Code Online (Sandbox Code Playgroud)

不要寻找精确的Jinja2语法,只需从perl世界中寻找支持继承的任何模板引擎.(不仅仅是普通包括 - 像Template :: Toolkit)

在这里问,因为搜索CPAN对于像"模板继承"这样的词来说是一种痛苦 - 显示了与这个问题无关的数千个模块.

Ps:...它不应该像嵌入式perl - 应该是"用户可编辑",允许用户构建自己的模板而不会损害整个系统 - 因此不能使用Mason或HTML :: Mason)

perl inheritance templates

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

用成对分隔符封闭仍然没有封闭的字符串

需要用封闭的分隔符封装仍然没有封闭的字符串.示例文字:

Some text or random characters here. {% Another random string
enclosed in a pair of delimiters as next {% what can be deeply
nested {% as {%here%}%} end of delimited %} text. %}Another
bla-bla

random text outside of the delimiters - called
as "free text".
Run Code Online (Sandbox Code Playgroud)

需要附上出现的所有自由文本

%{ORIG .... original free text ... %}
Run Code Online (Sandbox Code Playgroud)

并且不要修改已经包含的字符串.所以,在上面的例子中需要包含两段自由文本,并且应该得到下一个:

{%ORIG Some text or random characters here. %}{% Another random string
enclosed in a pair of delimiters as next {% what can be …
Run Code Online (Sandbox Code Playgroud)

regex perl

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

用perl来解释JS闭包

我理解没有任何问题,perl闭包是如何工作的,就像下一个

use 5.012;
use strict;
use warnings;

sub countdown {
        my $start = shift;
        return sub { $start-- }
}

my $c10 = countdown(3);
say while( $_ = $c10->() );
Run Code Online (Sandbox Code Playgroud)

我正在尝试理解下一段Javascript:

var runInSandbox = (function(js, inputPath) {

  (function() {
    if ((!context.initialized__QUERY)) {
      return createContext();
    };
  })();
  (function() {
    if (typeof(inputPath) !== 'undefined') {
      (process.argv)[1] = inputPath;;
      (context)["__dirname"] = path.dirname(inputPath);;
      return (module)["filename"] = inputPath;;
    };
  })();
  return vm.runInContext(js, context, "sibilant");
});
Run Code Online (Sandbox Code Playgroud)

没有机会!:( 有人可以将上面的内容重写为 perl吗?我知道perl有点 - 所以对我来说理解JS基础知识和结构非常有用:

(...)() …
Run Code Online (Sandbox Code Playgroud)

javascript perl

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

标签 统计

perl ×7

bash ×2

regex ×2

imagemagick ×1

inheritance ×1

javascript ×1

moo ×1

moose ×1

templates ×1

wc ×1