小编dar*_*rch的帖子

我怎么知道几周前的日期是什么?

我试图根据我想要回去的周数来确定计算上一个日期的好方法.今天是2011年7月19日,所以如果我想回到5周,那么确定那个日期的最佳方法是什么?

perl date

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

为什么我的Perl脚本不能区分"0"和"""`?

Perl noob在这里 - 我有以下脚本

if(substr($pc, 3,1)!=" "){
       $newpc = substr($pc, 0, 4) . " " . substr($pc, 4);
}
Run Code Online (Sandbox Code Playgroud)

它被设计为在邮政编码中放置一个空格,例如NN141NJ变成NN14 1NJ......但是对于NN102DE它没有做任何事情的邮政编码,Perl是否识别" "并且"0"同样如此?0作为第四个字母,我怎样才能使用perl而不是忽略字符串?

perl replace substr

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

如何从其子程序之一获取Perl模块的名称?

假设我有一个Perl模块My::Module:

package My::Module;

sub foo {
   return $module_name;
}
Run Code Online (Sandbox Code Playgroud)

我会怎么替换$module_name用得到My::Module

perl perl-module

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

如何测试方法计算出正确的结果?

这听起来比我的意思更模糊,但是在类中测试方法时正确的过程是什么。

例如,客户类将设置密码的 md5 哈希值保存到数据库,而不是实际密码。客户类中的私有方法计算出要保存的 md5 哈希值。

public class Customer() {

public void setPassword(String password){
  this.password = hashPassword(password);
}

private String hashPassword(String password){
  ..do stuff..
}

.. other methods ..

}
Run Code Online (Sandbox Code Playgroud)

现在这只是一个例子,我不想知道如何计算 md5 哈希值等。这是关于测试的。这是我能想到的选择:

  • 我在测试类中创建一个与 hashPassword 执行相同操作的方法,然后比较结果。
  • 我手动计算特定密码 (myPassword) 的结果并将其存储为常量。在测试中将密码设置为 myPassword 后,我会将常量与结果进行比较。

java testing

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

Perl访问散列/散列引用数据结构中的元素

我有一个问题,我希望你可以帮忙,因为我是哈希和哈希参考资料的新手?

我有以下数据结构:

$VAR1 = {
    'http://www.superuser.com/' => {
        'difference' => {
            'http://www.superuser.com/questions' => '10735',
            'http://www.superuser.com/faq' => '13095'
        },
        'equal' => {
            'http://www.superuser.com/ ' => '20892'
        }
    },
    'http://www.stackoverflow.com/' => {
        'difference' => {
            'http://www.stackoverflow.com/faq' => '13015',
            'http://www.stackoverflow.com/questions' => '10506'
        },
        'equal' => {
            'http://www.stackoverflow.com/ ' => '33362'
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果我想访问密钥中的所有URL,'difference'那么我可以对URL执行一些其他操作,访问这些元素的正确或首选方法是什么?

例如,我最终将得到以下URL,然后我可以在foreach循环中执行以下操作:

http://www.superuser.com/questions
http://www.superuser.com/faq
http://www.stackoverflow.com/faq
http://www.stackoverflow.com/questions
Run Code Online (Sandbox Code Playgroud)

- - - 编辑 - - -

用于访问上面显示的数据结构的元素的代码:

my @urls;
foreach my $key1 ( keys( %{$VAR1} ) ) {
    print( "$key1\n" …
Run Code Online (Sandbox Code Playgroud)

perl hash www-mechanize hash-of-hashes hashref

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

我在注销后如何在Unix上运行Perl脚本?

我有一个需要很多时间才能完成的脚本.

我宁愿退出并稍后检索其输出,而不是等待它完成.

我试过了;

at -m -t 03030205 -f /path/to/./thescript.pl

nohup /path/to/./thescript.pl &

我还验证了这些进程实际存在psat -l依赖于我使用的调度语法.

当我退出shell时,这两个进程都会死掉.有没有办法在关闭连接时阻止脚本终止?

我们这里有crons并且它们已经设置好并且正常工作,但我想使用atnohup用于一次性脚本.

我的语法有问题吗?有没有其他方法可以产生预期的结果?


编辑:
我不能使用screendisown- 他们没有安装在我的HP Unix设置中,我也无法安装它们

scheduling keep-alive nohup at-job

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

Perl比较没有数字的字符串

我有2个变量:

my $var1 = 'package-name-1.4';
my $var2 = 'package-name-1.5';
Run Code Online (Sandbox Code Playgroud)

我想要做的是将$ var1与$ var2进行比较,同时排除数字.

我已经在网上看过并试过Regex,但是我无法让它工作,我非常感谢一些帮助.

我的想法如下:

if (removeNumbers($var1) =~ removeNumbers($var2))
Run Code Online (Sandbox Code Playgroud)

因此,结果就像比较:package-name-和package-name-,从而评估为true.

在此先感谢您的帮助!

perl

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

这个Perl代码如何将字符串拆分成三个字符的块?

我有一个字符串,我需要分成三个字符的块.谷歌搜索发现以下代码,工作正常:

$input = "DEADBEEF";
@output = ();
my @output = ( $input =~ m/.{3}/g );
print $_."\n" foreach (@output);
Run Code Online (Sandbox Code Playgroud)

我是Perl初学者; 有人可以向我解释一下表达式的$input =~ m/.{3}/g作用吗?

regex perl split

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

Perl匿名子例程/函数错误

我有以下代码:(为了这个问题的目的非常简化,但完美地说明了我遇到的问题)

#!/usr/bin/perl

use strict;
use warnings;

&outer;
my $connected_sub;

sub outer {
    print "HELLO\n";

    &$connected_sub;
    $connected_sub = sub {
        print "GOODBYE\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时程序会给出此输出和错误:

HELLO
Use of uninitialized value in subroutine entry at subTesting line 13.
Can't use string ("") as a subroutine ref while "strict refs" in use at subTesting.pl line 13.
Run Code Online (Sandbox Code Playgroud)

我完全忽略了什么吗?我无法理解或弄清楚这是什么问题.

perl nested anonymous anonymous-function subroutine

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

如何在多个条件上过滤数组?

我正在尝试查找以S和N开头的所有数组元素,但下面的代码不会这样做:

@a = qw(sonata Samsung sony icic huawie nissan nokia);
Run Code Online (Sandbox Code Playgroud)

这是我的代码

@filter = grep { (/^s (.*)$/ig) && (/^n(.*)$/ig) } @a;
print "@filter \n";
Run Code Online (Sandbox Code Playgroud)

perl perl-module

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

给定这些字符串的任意排序,如何对字符串数组进行排序?

我希望对字符串数组进行排序,以便字符串按以下顺序排列:

@set = ('oneM', 'twoM', 'threeM', 'sixM', 'oneY', 'twoY', 'oldest');
Run Code Online (Sandbox Code Playgroud)

你可能会注意到,这些代表时间段,所以oneM是第一个月,等等.我的问题是我想按时间段排序,但是对于字符串,我不能只使用'sort',所以我创建了这个哈希来表达字符串应该如何排序:

my %comparison = (
    oneM    => 1,
    twoM    => 2,
    threeM  => 3,
    sixM    => 6,
    oneY    => 12,
    twoY    => 24,
    oldest  => 25,
);
Run Code Online (Sandbox Code Playgroud)

我希望这会让我的生活更轻松,我可以做一些事情,比如:

foreach my $s (@set) {
    foreach my $k (%comparison) {
        if ($s eq $k) {
            something something something
Run Code Online (Sandbox Code Playgroud)

我觉得这是一个漫长的做事方式,我不确定如果我找到相同的东西后我会如何实际排序......我想我有点想念自己的情节了所以任何帮助将不胜感激

根据要求,预期输出将如上所示在@set中显示.我应该已经提到@set中的值将是该集合的一部分,但不一定是所有这些值而不是相同的顺序.

sorting perl hash

0
推荐指数
2
解决办法
207
查看次数

为什么这个Perl函数似乎只处理它的一些参数?

为什么

my $i=0;
my @arr=();

sub readall {
    foreach (@_) {
        $arr[$i] = shift @_;
        $i++;
    }
}

readall(1, 2, 3, 4, 5);
print "@arr"
Run Code Online (Sandbox Code Playgroud)

my $i=0;
my @arr=();

sub readall {
    foreach (@_) {
        $arr[$i] = shift @_;
        print $arr[$i];
        $i++;
    }
}

readall(1, 2, 3, 4, 5);
Run Code Online (Sandbox Code Playgroud)

只打印三个参数readall

为什么这个函数看起来应该表现得一样,处理所有五个参数?

sub readall {
    foreach (@_) {
        print $_;
    }
}

readall(1, 2, 3, 4, 5);
Run Code Online (Sandbox Code Playgroud)

这也读取了所有五个(但确实按照不同的原则操作):

my @arr=();

sub readall {
    push(@arr, @_);
}

readall(1, 2, …
Run Code Online (Sandbox Code Playgroud)

perl arguments argument-passing

0
推荐指数
1
解决办法
100
查看次数