小编jm6*_*666的帖子

在perl中按需加载所需的包

重新提出的问题 - 抱歉,这有点长.

例如,有一个简单的包

package My;
use Moose;
use namespace::sweep;
sub cmd1 {1}
sub smd2 {2}
__PACKAGE__->meta->make_immutable;
1;
Run Code Online (Sandbox Code Playgroud)

我希望允许My其他方法扩展其他方法,例如

package My::Cmd3;
use Moose;
extends 'My';
sub cmd3 {3}
1;
Run Code Online (Sandbox Code Playgroud)

这允许使用"基础" MyMy::Cmd3下一个方法:

use My::Cmd3;
my $obj = My::Cmd3->new();
say $obj->cmd1(); #from the base My
say $obj->cmd3(); #from the My::Cmd3;
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.我不想use My::Cmd3;,(这里会有更多扩展包),我想要use My;.

使用角色是NICER,如:

package My;
use Moose;
with 'My::Cmd3';
sub cmd1 {1}
sub cmd2 {2}
__PACKAGE__->meta->make_immutable;
1;

package …
Run Code Online (Sandbox Code Playgroud)

perl moose

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

如何在perl正则表达式中组合多个Unicode属性?

有这个脚本:

use 5.014;
use warnings;

use utf8;    
binmode STDOUT, ':utf8';

my $str = "XYZ ??? zyz ???";

my @greek = ($str =~ /\p{Greek}/g);
say "Greek: @greek";

my @upper = ($str =~ /\p{Upper}/g);
say "Upper: @upper";

#my @upper_greek = ($str =~ /\p{Upper+Greek}/); #wrong.
#say "Upper+Greek: @upper_greek";
Run Code Online (Sandbox Code Playgroud)

可以组合多个unicode属性吗?例如,如何选择Upper and Greek,并得到想要的:

Greek: ? ? ? ? ? ?
Upper: X Y Z ? ? ?
Upper+Greek: ? ? ?      #<-- how to get this?
Run Code Online (Sandbox Code Playgroud)

unicode perl

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

图灵完整的模板引擎

什么模板引擎/ 模板语言图灵齐全?到目前为止我听说过这些:

  • FreeMarker(用java实现)
  • MovableTypes模板语言(在perl中)
  • xslt :-(
  • 猎豹(Python)
  • Smarty(PHP)

还有其他的(特别是用perl实现的)?

Ps:不要浪费时间告诉我MVC,为什么turing完整的模板很糟糕,为什么这不是一个有用的比较点:)

ruby python perl templates programming-languages

6
推荐指数
1
解决办法
526
查看次数

Perl - HTTP :: Proxy捕获XHR/JSON通信

该网站http://openbook.etoro.com/#/main/有一个实时源,由javascript通过XHR保持活动请求生成,并从服务器获取gzip压缩JSON字符串的答案.

我想将Feed捕获到文件中.

通常的方式(WWW :: Mech ..)(可能)不可行,因为需要在页面中设计所有Javascripts并模拟浏览器是非常艰巨的任务,因此,寻找替代解决方案.

我的想法是使用中间人战术,所以broswser将完成他的工作,我想通过perl代理捕获通信 - 专门用于此任务.

我能够抓住最初的沟通,但不是饲料本身.代理工作正常,因为在浏览器中,Feed只运行我的文件管理器不起作用.

use HTTP::Proxy;
use HTTP::Proxy::HeaderFilter::simple;
use HTTP::Proxy::BodyFilter::simple;
use Data::Dumper;
use strict;
use warnings;

my $proxy = HTTP::Proxy->new(
     port => 3128, max_clients => 100, max_keep_alive_requests => 100
);

my $hfilter = HTTP::Proxy::HeaderFilter::simple->new(
    sub {
        my ( $self, $headers, $message ) = @_;
        print STDERR "headers", Dumper($headers);
    }
);

my $bfilter = HTTP::Proxy::BodyFilter::simple->new(
    filter => sub {
        my ( $self, $dataref, $message, $protocol, $buffer ) = @_;
        print STDERR "dataref", Dumper($dataref); …
Run Code Online (Sandbox Code Playgroud)

perl forex

6
推荐指数
1
解决办法
998
查看次数

lua元对象协议模型:lua-coat vs loose

是谁的人使用LUA涂层松散的 常规

哪个更成熟,更稳定,无bug - >"更好"?
其中一个是否足够成熟的生产环境?

  • lua-coat - 活动无 - 最后更新时间:2010年11月 - 标记为测试版
  • loose - 活动无 - 最后更新于2008年12月 - ???

有经验吗?

(寻找有真正经验的人的答案:)

lua

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

如何在shell脚本参数中处理" - "?

这个问题有三个部分,每个部分都很容易,但结合在一起并不是微不足道的(至少对我而言):)

需要编写一个脚本作为其参数:

  1. 另一个命令的一个名称
  2. 该命令的几个参数
  3. 文件列表

例子:

./my_script head -100 a.txt b.txt ./xxx/*.txt
./my_script sed -n 's/xxx/aaa/' *.txt
Run Code Online (Sandbox Code Playgroud)

等等.

在我的脚本里面由于某种原因我需要区分

  • 什么是命令
  • 该命令的参数是什么
  • 什么是文件

所以写上面例子的最标准方法可能是:

./my_script head -100 -- a.txt b.txt ./xxx/*.txt
./my_script sed -n 's/xxx/aaa/' -- *.txt
Run Code Online (Sandbox Code Playgroud)

问题1:这里有更好的解决方案吗?

在./my_script中处理(第一次尝试):

command="$1";shift
args=`echo $* | sed 's/--.*//'`
filenames=`echo $* | sed 's/.*--//'`

#... some additional processing ...

"$command" "$args" $filenames #execute the command with args and files
Run Code Online (Sandbox Code Playgroud)

filenames包含spaces和/或' - '时,此解决方案将失败,例如
/ some - path/to/more/idiotic file name.txt

问题2:如何正确获取 …

bash shell zsh sh

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

Graphviz:如何渲染关于某些节点边连接点的图形?

我想以与下面相似的布局呈现图形:

通缉

我试过这个:

digraph EDP
{
  graph [colorscheme=paired12];
  node [label="\N", shape=box, style="rounded,filled", colorscheme=paired12, color=8, fillcolor=7, width="1.2", fontname="Arial narrow", fontsize=12];
  edge [colorscheme=paired12, color=8, fontsize=11, fontname="Arial narrow"];

  src [label="Source"];
  dst [label="Destination"];
  filter [label="Filter"];

  src -> dst [label="Encoding process"];
  src -> filter [label="a"];
  filter -> dst [label="b"];
  src -> filter [dir=back, label=c];
  filter -> dst [dir=back, label=d];
  src -> dst [dir=back, label="Decoding process"];

}
Run Code Online (Sandbox Code Playgroud)

产生了以下结果:(不是很好......

我的

谁能告诉我最接近的解决方案?(可能不可能完全相同)

layout graphviz graph-drawing

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

用仅比较纯图像数据和图像相似性进行重复照片搜索?

在13年中收集了大约600GB的照片-现在存储在freebsd zfs / server中。

照片来自家庭计算机,从几个部分备份到不同的外部USB HDD,从磁盘灾难中重建的图像,从不同的照片处理软件(iPhoto,Picassa,HP和许多其他软件:())在多个深层子目录中-不久= TERRIBLE MESS包含许多重复。

因此,我首先要做的是:

  • 在树中搜索相同大小的文件(快速),并对其进行md5校验和。
  • 收集重复的图像(相同大小+相同的md5 =重复)

这很有帮助,但是这里仍然有很多重复项:

  • 照片仅与某些照片管理软件添加的exif / iptc数据有所不同,但是图像是相同的(或至少“看起来相同”并且具有相同的尺寸)
  • 或者它们只是原始图像的调整大小版本
  • 或者它们是原稿的“增强”版本等。

现在的问题:

  • 如何在没有exif / IPTC和类似元信息的情况下,通过只在JPG中校验“纯图像字节” 来查找重复项?因此,要过滤出重复的照片,只有exif标签有什么不同,但是图像是相同的。(因此文件校验和不起作用,但是图像校验和可以...)。(我希望)这不是很复杂-但需要一些指导。
  • 哪个perl模块可以从JPG文件中提取“纯”图像数据,什么可用于比较/校验和

更复杂

  • 如何找到“相似”的图像,只有
    • 调整尺寸的原件
    • 原稿的“经过修饰”的版本(来自某些照片处理程序)
  • 在这里,Unix命令格式或perl模块(XS?)中是否已有可用的算法,我可以用来检测这些特殊的“重复项”?

我可以使复杂的脚本是BASH和“ +-” :)知道perl。。可以直接在服务器上使用FreeBSD / Linux实用程序,并且可以通过网络使用OS X(但是通过LAN使用600GB并不是最快的方法)...

我的粗略想法:

  • 仅在工作流程结束时删除图像
  • use Image::ExifTool 脚本,用于根据图像创建日期和相机型号(可能也是其他exif数据)收集重复的图像数据。
  • 进行纯图像数据的校验和(或提取直方图-同一图像应具有相同的直方图)-对此不确定
  • 使用一些相似性检测来基于调整大小和照片增强功能查找重复项-不知道该怎么办...

任何想法,帮助,任何(软件/算法)提示如何使混乱局面?

附:

这几乎是一个相同的问题:查找重复的图像文件,但答案(md5)已经完成。并寻找更精确的校验和和图像比较算法。

bash perl image image-processing duplicate-removal

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

Imagemagick深度转换

有一个负担in.png.现在做下一个:

$ convert in.png -strip out.tiff     #convert to tiff
$ convert out.tiff -strip out.png    #and back
$ cmp in.png out.png
$#no output - the images has no difference - theyre same

$ identify in.png out.png
in.png PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000
out.png[1] PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)

现在尝试这个eps.所以:

$ convert in.png -strip out2.eps        #convert to eps
$ convert out2.eps -strip out2.png      #back
Run Code Online (Sandbox Code Playgroud)

而且图像不同.

$ identify in.png out.png out2.png
in.png PNG …
Run Code Online (Sandbox Code Playgroud)

image imagemagick image-processing

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

Matlab批处理与createjob

我使用以下wrapper代码(缩短)将批处理作业(存储在my_parjob.m文件中)提交到 matlab 集群。

files = { .... list of attached files ... };
cluster = parcluster();  %returns my cluster object
job = batch(cluster,'my_parjob','CaptureDiary',true,'AutoAttachFiles',true,'AttachedFiles',files,'Matlabpool',cluster.NumWorkers-1,'CurrentFolder','/path/to/my/job');
wait(job);
Run Code Online (Sandbox Code Playgroud)

该代码工作并使用该batch函数来创建具有最大可用工作人员的作业并运行该作业。(my_parjob.m包含我的程序parfor)。

batch有人可以向我解释命令和createJob+ createTask+之间的区别和/或相似之处吗submit?the batchonly 是以下内容的一种简写吗?

cluster = parcluster();
job = createJob(cluster);
t = createTask(j, ????); % ???
submit(job);
wait(job);
Run Code Online (Sandbox Code Playgroud)

我试图通过阅读此处以及详细的作业控制此处来理解 Matlab 中的批处理概念,但没有取得太大成功。

matlab

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