重新提出的问题 - 抱歉,这有点长.
例如,有一个简单的包
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)
这允许使用"基础" My
和My::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) 有这个脚本:
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) 什么模板引擎/ 模板语言图灵齐全?到目前为止我听说过这些:
还有其他的(特别是用perl实现的)?
Ps:不要浪费时间告诉我MVC,为什么turing完整的模板很糟糕,为什么这不是一个有用的比较点:)
该网站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) 是谁的人使用LUA涂层或松散的 常规?
哪个更成熟,更稳定,无bug - >"更好"?
其中一个是否足够成熟的生产环境?
有经验吗?
(寻找有真正经验的人的答案:)
这个问题有三个部分,每个部分都很容易,但结合在一起并不是微不足道的(至少对我而言):)
需要编写一个脚本作为其参数:
例子:
./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:如何正确获取 …
我想以与下面相似的布局呈现图形:
我试过这个:
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)
产生了以下结果:(不是很好......
谁能告诉我最接近的解决方案?(可能不可能完全相同)
在13年中收集了大约600GB的照片-现在存储在freebsd zfs / server中。
照片来自家庭计算机,从几个部分备份到不同的外部USB HDD,从磁盘灾难中重建的图像,从不同的照片处理软件(iPhoto,Picassa,HP和许多其他软件:())在多个深层子目录中-不久= TERRIBLE MESS包含许多重复。
因此,我首先要做的是:
这很有帮助,但是这里仍然有很多重复项:
现在的问题:
更复杂
我可以使复杂的脚本是BASH和“ +-” :)知道perl。。可以直接在服务器上使用FreeBSD / Linux实用程序,并且可以通过网络使用OS X(但是通过LAN使用600GB并不是最快的方法)...
我的粗略想法:
use Image::ExifTool
脚本,用于根据图像创建日期和相机型号(可能也是其他exif数据)收集重复的图像数据。任何想法,帮助,任何(软件/算法)提示如何使混乱局面?
附:
这几乎是一个相同的问题:查找重复的图像文件,但答案(md5)已经完成。并寻找更精确的校验和和图像比较算法。
有一个负担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) 我使用以下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 batch
only 是以下内容的一种简写吗?
cluster = parcluster();
job = createJob(cluster);
t = createTask(j, ????); % ???
submit(job);
wait(job);
Run Code Online (Sandbox Code Playgroud)