小编G. *_*ito的帖子

在postgresql中按月和年分组查询结果

我在Postgres服务器上有以下数据库表:

id      date          Product Sales
1245    01/04/2013    Toys    1000     
1245    01/04/2013    Toys    2000
1231    01/02/2013    Bicycle 50000
456461  01/01/2014    Bananas 4546
Run Code Online (Sandbox Code Playgroud)

我想创建一个查询,给出SUM了的Sales按月份和年份如下列并对结果进行分组:

Apr    2013    3000     Toys
Feb    2013    50000    Bicycle
Jan    2014    4546     Bananas
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?

sql postgresql

133
推荐指数
6
解决办法
11万
查看次数

Try :: Tiny仍然建议在Perl 5.14或更高版本中进行异常处理吗?

Perl社区的共识似乎Try::Tiny是处理异常的首选方式.

Perl的5.14(这是我使用的版本)似乎解决问题evalTry::Tiny地址.还会Try::Tiny为我提供任何好处吗?

perl exception-handling

76
推荐指数
4
解决办法
9418
查看次数

在Perl中,是否有内置的方法来比较两个数组的相等性?

我有两个字符串数组,我想比较相等:

my @array1 = ("part1", "part2", "part3", "part4");
my @array2 = ("part1", "PART2", "part3", "part4");
Run Code Online (Sandbox Code Playgroud)

是否有内置的方法来比较数组,就像标量一样?我试过了:

if (@array1 == @array2) {...}
Run Code Online (Sandbox Code Playgroud)

但它只是在标量上下文中评估每个数组,因此比较了每个数组的长度.

我可以使用自己的函数来完成它,但它看起来像是一个低级操作,应该有一个内置的方法来做它.在那儿?

编辑:遗憾的是,我无法访问5.10+或可选组件.

arrays perl compare match

51
推荐指数
6
解决办法
6万
查看次数

如何维护我添加到Perl哈希的键的顺序?

如何在使用以下程序中的哈希计算实际列表的顺序后维护实际列表的顺序?例如,<DATA>

a
b
e
a
c 
d 
a
c
d
b
etc.
Run Code Online (Sandbox Code Playgroud)

使用哈希,我计算每个元素的出现次数.

我想要的是:

a  3
b  2
e  1
c  2
d  2
Run Code Online (Sandbox Code Playgroud)

但是以下程序显示了我的情况.

my (%count, $line, @array_1, @array_2);
while ($line = <DATA>) {
    $count{$line}++ if ( $line =~ /\S/ );
}
@array_1 = keys(%count);
@array_2 = values(%count);
for(my $i=0; $i<$#array_1; $i++)
{
   print "$array_1[$i]\t $array_2[$i]";
}
Run Code Online (Sandbox Code Playgroud)

perl hash data-structures perl-data-structures

20
推荐指数
5
解决办法
2万
查看次数

Perl 5.10+中词汇$ _的好,坏和丑

从Perl 5.10开始,现在可以在语义上或在构造中$_明确地对上下文变量进行范围限定.my $_;given / when

有没有人发现词汇的好用$_?它是否使任何构造更简单/更安全/更快?

如果情况变得更复杂呢?词法是否在$_您的代码中引入了任何错误?(因为写入的控制结构$_将使用词法版本,如果它在范围内,如果它包含任何子例程调用(由于动态范围的丢失),这可以改变代码的行为)

最后,我想构建一个清单,明确何时$_用作词汇,全局,或者根本不重要.


注意:由于perl5-5.24这些实验性特征不再是perl的一部分.

perl global lexical perl5.10

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

perl中的匿名哈希是什么?

$hash = { 'Man' => 'Bill',
          'Woman' => 'Mary,
          'Dog' => 'Ben'
        };
Run Code Online (Sandbox Code Playgroud)

Perl的"匿名哈希"究竟做了什么?

perl hash data-structures perl-data-structures

17
推荐指数
3
解决办法
2万
查看次数

如何在使用tar时保持文件所有权

我目前正在为我们的服务器编写一个自动备份脚本.我在脚本中使用UNIX tar命令来存档代码存储库.

在我的PERL脚本中,我使用tar命令,如下所示:

system("tar -jcpf $destPath/$string.tar.bz2 -X $exclusionFile $targetPath");
Run Code Online (Sandbox Code Playgroud)

我想在提取tar存档时保留文件所有权.我试图列出tar存档内容

tar -jtvf
Run Code Online (Sandbox Code Playgroud)

并且列表包含每个文件的正确文件所有权,但在提取存档时,文件所有权将更改为当前用户.

有没有办法提取tar存档并保留每个文件的原始文件所有权?

unix perl tar

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

用参数调用main函数

我从文件中读取有问题.每当我需要从文件中读取时,我都会这样做:

main = do x <- readFile "/tmp/foo.txt"
      putStr x
Run Code Online (Sandbox Code Playgroud)

但是现在我希望这条道路成为一个论点,所以我尝试了下面的内容

main s = do x <- readFile s
        putStr x
Run Code Online (Sandbox Code Playgroud)

它不起作用.我看到以下错误:

Couldn't match expected type `IO t0'
            with actual type `FilePath -> IO ()'
In the expression: main
When checking the type of the function `main'
Run Code Online (Sandbox Code Playgroud)

我的作业是编写一个程序,程序必须包含一个main函数(因为它将被编译),而call的参数必须包含文件的名称.我不确定我是否理解这一点,我不知道如何继续.我会感激一些帮助.

haskell

15
推荐指数
2
解决办法
6761
查看次数

如何在Mojolicious的其他控制器中调用动作?

我有一个使用Mojolicious框架的应用程序.我在数据库中有一个表,其中包含错误响应列表以及与之关联的其他详细信息.我已经创建了相应的Result和Resultset来使用DB表.还有一个控制器通过与Resultset交互来获取有关错误的详细信息.

我的想法是在此控制器中调用一个操作,通过查询数据库获取传递给它的错误的详细信息(由另一个控制器传递),添加有关为导致该资源的资源请求的环境的运行时信息.错误,创建响应并返回到调用它的控制器.

我正在努力应对从一个控制器到另一个控制器的呼叫.我如何在Mojolicious中做到这一点?我可以传递控制器对象($self)来实现这一点,但有没有更好的方法来做到这一点,所以我完全将我的错误处理响应与调用控制器分开?

model-view-controller perl mojolicious mojolicious-lite

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

使用Perl查找文件

File::Find wanted 子程序

这个问题比原始标题("原型和子程序的前向声明"!)简单得多.我希望答案,无论多么简单,都能帮助我理解子程序/函数,原型和范围以及File::Find模块.

使用Perl,子程序几乎可以出现在任何地方,你通常不需要进行前向声明(除非sub声明了一个原型,我不知道如何在Perl中采用"标准"方式).对于我通常用Perl做的事情,这些不同的运行方式之间没有什么区别somefunction:

sub somefunction;  # Forward declares the function
&somefunction; 
somefunction();
somefunction;   # Bare word warning under `strict subs`
Run Code Online (Sandbox Code Playgroud)

我经常find2perl用来生成代码,我将这些代码整合到脚本的一部分中.这可能是糟糕的风格,现在我的脏衣服是公开的,但所以它是:-)因为File::Findwanted功能是一个必需的子程序 - find2perl创建它并添加sub wanted;到它创建的结果脚本.有时候,当我编辑脚本时,我会从中移除" sub" sub wanted并最终为&wanted;wanted();.但如果没有sub wanted;前瞻声明表格,我会收到此警告:

Use of uninitialized value $_ in lstat at findscript.pl line 29
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么会发生这种情况,这是一个真正的问题吗?这只是"警告",但我想更好地理解它.

  • 文档和代码说明$_是本地化的sub wanted {}.如果我使用wanted();而不是sub wanted;?为什么它会被定义?
  • wanted某处使用原型?我错过了一些明显的东西Find/File.pm …

perl find

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