小编Dav*_*d B的帖子

eclipse:保存后自动构建

我有一个创建可运行jar的ant脚本,我希望每次在代码中进行更改并保存它时它都会运行.我想在Eclipse中需要一些"保存后自动构建"选项.有这样的事吗?

eclipse ant build

14
推荐指数
1
解决办法
1万
查看次数

如何在Perl中匹配多个正则表达式?

我想检查一些字符串是否与给定的一组正则表达式匹配.我怎样才能做到这一点?

regex perl

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

如何列出使用PHP按字母顺序排序的目录中的所有文件?

我使用以下PHP代码列出当前目录下的所有文件和文件夹:

<?php
    $dirname = ".";
    $dir = opendir($dirname);

    while(false != ($file = readdir($dir)))
        {
          if(($file != ".") and ($file != "..") and ($file != "index.php"))
             {
              echo("<a href='$file'>$file</a> <br />");
        }
    }
?>
Run Code Online (Sandbox Code Playgroud)

问题是列表不是按字母顺序排序的(也许它按创建日期排序?我不确定).

如何确保按字母顺序排序

php sorting directory readdir opendir

14
推荐指数
2
解决办法
4万
查看次数

在迭代时我应该如何删除哈希元素?

我有相当大的哈希(大约10M键),我想从中删除一些元素.

我通常不喜欢使用deletesplice和我拉闸复制我想要什么,而不是删除的内容,我不知道.但是这一次,由于哈希是真正的大,我想我会直接将它删除.

所以我做的是这样的:

foreach my $key (keys %hash) {
 if (should_be_deleted($key)) {
  delete($hash{$key});
 }
}
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常.但是..如果我想在迭代它们之前删除一些元素怎么办?我将通过例子解释:

foreach my $key (keys %hash) {
 if (should_be_deleted($key)) {
  delete($hash{$key});
  # if $key should be deleted, so does "$key.a", "kkk.$key" and some other keys
  # I already know to calculate. I would like to delete them now...
 }
}
Run Code Online (Sandbox Code Playgroud)

我想一些可能的解决方案 - 比如检查是否有键仍然存在,如在环或第一循环的第一步,创建密钥的列表中删除(并没有实际删除它们),则实际删除的另一个循环.

你对此有何看法?

UPDATE

似乎双通道方法已达成共识.但是,在第一遍中我仔细检查已经标记为删除的密钥,这是非常低效的.这有点递归,因为我不仅检查密钥,还计算应删除的其他密钥,尽管它们已经由原始密钥计算.

也许我需要使用一些更动态的数据结构来迭代密钥,这将动态更新?

perl hash

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

如何使用Perl列出目录中的所有文件?

我经常使用类似的东西

my $dir="/path/to/dir";
opendir(DIR, $dir) or die "can't open $dir: $!";
my @files = readdir DIR;
closedir DIR;
Run Code Online (Sandbox Code Playgroud)

或者有时我会使用glob,但无论如何,我总是需要添加一两行来过滤掉.,..这很烦人.你通常如何处理这项共同任务?

directory perl

12
推荐指数
5
解决办法
9917
查看次数

如何使用Method :: Signatures使Perltidy工作?

我正在使用EclipseEPIC结合来编写我的Perl代码.我将EPIC配置为使用Perltidy和"-pbp"(perl最佳实践样式)来格式化我的代码.

使用Method :: Signatures命名参数时,这不起作用.例如,func (:$arg1, : $arg2)格式化为func (: $arg1, : $arg2)产生错误.

此外,func关键字不被识别,sub因此缩进是错误的.

有关之前的悬而未决的问题和这个跨岗位.

eclipse perl code-formatting method-signature perl-tidy

12
推荐指数
1
解决办法
780
查看次数

如果生成警告,如何使Perl死掉?

我希望我的脚本perl在生成警告时死亡,包括由使用过的包生成的警告.

例如,这应该死:

use strict;
use warnings;
use Statistics::Descriptive;

my @data = ( 8, 9, 10, "bbb" );
my $stat = Statistics::Descriptive::Full->new();
$stat->add_data(@data);
Run Code Online (Sandbox Code Playgroud)

use warnings FATAL => 'all';不会有帮助,因为它是词法范围的.测试:: NoWarnings也不起作用,因为它不会杀死脚本.

perl warnings die

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

我该如何使用Perl的File :: Temp?

我想创建一个临时文件,写入文件句柄然后用文件名调用外部程序.

问题是我通常close在写入文件之后和调用外部程序之前想要文件,但如果我理解正确 - close一个tempfile()导致它被删除.

那么这里的解决方案是什么?

perl temporary-files

11
推荐指数
2
解决办法
6432
查看次数

控制R曲线轴的数字格式

我有几个100k的值.当我将它们绘制为R中的一条线时(使用plot(type="l")x轴旁边的数字,刻度线以科学格式打印(例如0e+00,2e+04,...,1e+05).相反,我希望它们是:

一个) 0,20kb,...,100kb

B)相同但现在第一个坐标应为1(即从1开始计数而不是0).

BTW R数组使用从1开始的编号(与perl,java等中的数组相比)所以我想知道为什么在绘制"他们"决定从0开始...

plot r

10
推荐指数
1
解决办法
2万
查看次数

@_如何在Perl子程序中工作?

我总是确定如果我将一个Perl子程序传递给一个简单的标量,它就永远不会在子程序之外改变它的值.那是:

my $x = 100;
foo($x);
# without knowing anything about foo(), I'm sure $x still == 100
Run Code Online (Sandbox Code Playgroud)

所以,如果我想foo()改变x,我必须传递它的参考x.

然后我发现事实并非如此:

sub foo {
 $_[0] = 'CHANGED!';
}
my $x = 100;
foo($x);
print $x, "\n"; # prints 'CHANGED!'
Run Code Online (Sandbox Code Playgroud)

数组元素也是如此:

my @arr = (1,2,3);
print $arr[0], "\n"; # prints '1'
foo($arr[0]);
print $arr[0], "\n"; # prints 'CHANGED!'
Run Code Online (Sandbox Code Playgroud)

这有点让我感到惊讶.这是如何运作的?是不是子程序只获取参数的?它是如何知道它的地址的?

perl parameter-passing pass-by-reference subroutine

10
推荐指数
2
解决办法
5448
查看次数