小编Eug*_*ash的帖子

匈牙利语符号适用于Perl吗?

在Perl中,对任何东西的引用都是一个简单的标量,并且有$sigil.有时很难说它是什么样的参考.

我个人为带有字母的引用添加变量名称,这表示引用类型.例子:

my $aValues = [];                # arrayref
my $hValue  = {};                # hashref
my $oValue  = bless {};          # object
my $sValue  = \(my $s = 'foo');  # scalarref
...
Run Code Online (Sandbox Code Playgroud)

我见过这种符号的支持者和反对者.你用它吗?它有任何缺点吗?

perl types naming-conventions hungarian-notation

13
推荐指数
4
解决办法
790
查看次数

Perl的每个功能都值得使用吗?

perldoc -f我们读到:

有一个单一的迭代器每个散列,由所有共享each,keys以及values在程序的函数调用; 它可以通过读取散列中的所有元素或通过评估keys HASH或重置来重置values HASH.

当您离开包含范围的范围时,不会重置迭代器each(),这可能会导致错误:

my %h = map { $_, 1 } qw(1 2 3);
while (my $k = each %h) { print "1: $k\n"; last }
while (my $k = each %h) { print "2: $k\n"       }
Run Code Online (Sandbox Code Playgroud)

输出:

1: 1
2: 3
2: 2
Run Code Online (Sandbox Code Playgroud)

这种行为的常见解决方法是什么?它each一般值得使用吗?

perl hash each iterator

12
推荐指数
4
解决办法
3831
查看次数

为什么"d1j"在vim中删除了两行?

d{motion}命令似乎不一致:

d1j  " deletes 2 lines to the bottom
d1l  " deletes 1 character to the right
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?

vim command

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

如何使用netaddr在Python中将子网掩码转换为cidr

如何使用netaddr库将ipv4子网掩码转换为cidr表示法?
例: 255.255.255.0 to /24

python cidr

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

ws()块在Jenkins中做了什么?

我正在尝试将少数Jenkinsfiles从Scripted Pipeline转换为Declarative Pipeline.我有一个像这样的块Jenkinsfile:

ws("/path/to/dir") {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

我想知道它究竟做了什么以及将它转换为Declarative Pipeline语法的正确方法是什么.

jenkins jenkins-pipeline

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

Python中优先级较高的优先级队列

我需要一个优先级队列来获取具有最高优先级值的项目.我目前正在使用Queue库中的PriorityQueue类.但是,此函数仅返回具有最低值的项目.我尝试了一些丑陋的解决方案,如(sys.maxint - priority)作为优先级,但只是想知道是否存在更优雅的解决方案.

python queue priority-queue

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

当我重新声明Perl foreach控制变量时,为什么不收到警告?

为什么$i在以下代码中没有重新声明的警告?

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

for my $i (1..3) {
  my $i = 'DUMMY';
  print Dumper $i;
}
Run Code Online (Sandbox Code Playgroud)

variables perl warnings

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

为什么printf和sprintf在给定数组时表现不同?

sub do_printf  { printf @_ }
sub do_sprintf { print sprintf @_ }

do_printf("%s\n", "ok");  # prints ok
do_sprintf("%s\n", "ok"); # prints 2
Run Code Online (Sandbox Code Playgroud)

perl

10
推荐指数
3
解决办法
1677
查看次数

为什么在文件中可以使用"我们的"声明变量?

来自"我们的" perldoc:

我们有与我相同的范围规则,但不一定会创建变量.

这意味着声明的变量our不应该跨文件可见,因为file是最大的词法范围.但是这是错误的.为什么?

variables perl lexical-scope

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

Perl的排队系统

我正在开发一个Perl项目,该项目需要一个FIFO消息队列,用于在一台机器上的多个进程之间分配任务(UNIX).队列大小可能会增加到1M个作业.

我已经尝试过了IPC::DirQueue,但是当大约5万个工作入队时,它变得非常缓慢.这个模块的哪些好的替代品可以在Perl中使用?

perl task-queue

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