我试图根据我想要回去的周数来确定计算上一个日期的好方法.今天是2011年7月19日,所以如果我想回到5周,那么确定那个日期的最佳方法是什么?
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模块My::Module:
package My::Module;
sub foo {
return $module_name;
}
Run Code Online (Sandbox Code Playgroud)
我会怎么替换$module_name用得到My::Module?
这听起来比我的意思更模糊,但是在类中测试方法时正确的过程是什么。
例如,客户类将设置密码的 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 哈希值等。这是关于测试的。这是我能想到的选择:
我有一个问题,我希望你可以帮忙,因为我是哈希和哈希参考资料的新手?
我有以下数据结构:
$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) 我有一个需要很多时间才能完成的脚本.
我宁愿退出并稍后检索其输出,而不是等待它完成.
我试过了;
at -m -t 03030205 -f /path/to/./thescript.pl
nohup /path/to/./thescript.pl &
我还验证了这些进程实际存在ps并at -l依赖于我使用的调度语法.
当我退出shell时,这两个进程都会死掉.有没有办法在关闭连接时阻止脚本终止?
我们这里有crons并且它们已经设置好并且正常工作,但我想使用at或nohup用于一次性脚本.
我的语法有问题吗?有没有其他方法可以产生预期的结果?
screen或disown- 他们没有安装在我的HP Unix设置中,我也无法安装它们 我有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.
在此先感谢您的帮助!
我有一个字符串,我需要分成三个字符的块.谷歌搜索发现以下代码,工作正常:
$input = "DEADBEEF";
@output = ();
my @output = ( $input =~ m/.{3}/g );
print $_."\n" foreach (@output);
Run Code Online (Sandbox Code Playgroud)
我是Perl初学者; 有人可以向我解释一下表达式的$input =~ m/.{3}/g作用吗?
我有以下代码:(为了这个问题的目的非常简化,但完美地说明了我遇到的问题)
#!/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)
我完全忽略了什么吗?我无法理解或弄清楚这是什么问题.
我正在尝试查找以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) 我希望对字符串数组进行排序,以便字符串按以下顺序排列:
@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中的值将是该集合的一部分,但不一定是所有这些值而不是相同的顺序.
为什么
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 ×10
hash ×2
perl-module ×2
anonymous ×1
arguments ×1
at-job ×1
date ×1
hashref ×1
java ×1
keep-alive ×1
nested ×1
nohup ×1
regex ×1
replace ×1
scheduling ×1
sorting ×1
split ×1
subroutine ×1
substr ×1
testing ×1