小编Pau*_*kov的帖子

'docker ps'输出格式:仅列出正在运行的容器的名称

docker ps --format "table {{.Names}}"NAMES第一行输出:

root@docker-2gb-blr1-01:~# docker ps --format "table {{.Names}}"
NAMES
enr
osticket
osticket_db
...
Run Code Online (Sandbox Code Playgroud)

docker inspect --format '{{.Name}}' $(docker ps -q)

/在容器名称的开头打印:

root@docker-2gb-blr1-01:~# docker inspect --format '{{.Name}}' $(docker ps -q)"
/enr
/osticket
/osticket_db
Run Code Online (Sandbox Code Playgroud)

我想只列出正在运行的容器的名称,在开头没有标题或斜杠.请分享选项如何执行此操作.

bash docker

10
推荐指数
4
解决办法
4472
查看次数

如何搜索具有特定文件名的文件的 Github 存储库?

例如:我想找到Dockerfile其存储库中的所有 CRM 。

我检查了github help,但没有找到任何合适的搜索限定符。有只是filename:and in:file:,但它不是我想要的,我需要类似has_file:in:filename

任何解决方法?

github github-api

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

如何打印所有执行的子程序?

例如我有以下 Perl 脚本

{ 
    package A;

    {
        package B;

        sub _y {
            print "Just Another Perl Hacker\n";

        }

    }

    sub _x {
        print "Hello world!\n";
        B::_y();
    }
}


use strict;
use warnings;

_x();
Run Code Online (Sandbox Code Playgroud)

如何将带有包限定符的每个执行子打印到 STDERR 或任何日志文件?

例如,从上面的脚本中,我希望看到以下输出:

1 A::_x()
2 B::_y()
Run Code Online (Sandbox Code Playgroud)

我认为可以使用像 Devel::NYTProf 这样的调试器,但我还没有找到特定的调试器模块或它们的参数来完成这个简单的任务。

有任何想法吗?

perl trace call-graph

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

允许使用哪些符号来命名 perl5 模块和子例程?

是吗

[A-Za-z]以及::模块名称

对于[A-Za-z_-]子程序名称?

PS 我正在编写正则表达式来解析一些调试输出。

perl

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

使用Tie :: namespace的perl模块的常见想法是什么?

Tie::CPAN 上有很多带命名空间的模块- Tie :: Hash,Tie :: Sub,Tie :: Cache,Tie :: DBI等.它们之间有什么共同之处?

我检查了perltie但是我不确定我是否理解这个概念.有人可以解释一下吗?

perl naming tie

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

如何查看特定的哈希键以更改其值?

我有一个哈希,例如$hash->{'foo'}{'bar'}.

我想Carp::cluckbar密钥值发生变化的任何地方打电话.

怎么做 ?在CPAN上有没有可以做到这一点的现成模块?

debugging perl tie

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

使用typeglob重新定义perl函数不能按预期工作

这个例子工作正常:

use File::Slurp qw(read_file);
local *File::Slurp::read_file = sub {
    return 'test';
};

warn File::Slurp::read_file('/root/test.txt'); # return 'test'
Run Code Online (Sandbox Code Playgroud)

这个也是:

use File::Slurp qw(read_file);
local *read_file = sub {
    return 'test';
};

warn read_file('/root/test.txt');   # return 'test'
Run Code Online (Sandbox Code Playgroud)

但是如果我在typeglob中使用函数的全名它不起作用并尝试读取文件:

use File::Slurp qw(read_file);
local *File::Slurp::read_file = sub {
    return 'test';
};

warn read_file('/root/test.txt');
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么我不能通过完整命名空间重新定义子程序File::Slurp::read_file,并使用短名称?

在对象方法的情况下,它工作正常:

use LWP::UserAgent;
local *LWP::UserAgent::get = sub {
    return HTTP::Response->new( undef, undef, undef, 'Hello world' );    
};

my $ua = LWP::UserAgent->new;
warn $ua->get()->content;
Run Code Online (Sandbox Code Playgroud)

perl typeglob

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

使用NonStop调试器选项时如何将perl脚本的调试跟踪重定向到文件?

我正在使用标准Perl调试器来跟踪调用:

$ cat test.pl 
sub test { print "Hello world" }
test();
$ PERLDB_OPTS="NonStop frame=1" perl -d test.pl > /dev/null
Package test.pl.
  entering DB::Obj::_init
  entering main::test
Run Code Online (Sandbox Code Playgroud)

如何将输出重定向到文件?

如果我做

PERLDB_OPTS="NonStop frame=1" perl -d test.pl > /dev/null 2>trace.txt
Run Code Online (Sandbox Code Playgroud)

trace.txt 是空的.

它看起来不像在标准流上打印的调试输出(STDERR或STDOUT).

debugging perl

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

如何在Perl中创建x秒后的中断?

让我用代码示例解释任务:

#!/usr/bin/perl
use strict;
use warnings;

my $t = 3;

eval {
    local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
    print "Start $t\n";
    alarm(10);
    sleep($t);  # instead of this I have some data that collect code
    alarm(0);
    print "done with $t\n";
};

if ($@) {
    die unless $@ eq "alarm\n";
    print "timeout\n";
}
Run Code Online (Sandbox Code Playgroud)

而不是sleep我有一些代码将数据推送到数组.在x秒期间,数组将保证由所需数据填充.

问题:如何在x第二次打印数组后,不使用sleep(非阻塞方式)?

据我所知,在perl中设置计时器的最简单方法就是使用$SIG{ALRM}.但是如果我不需要定时器(不能使用sleep)该怎么办,我只需要设置一个必须在预定义的秒数后运行的中断?也许我应该用SIGINT这个任务?

任何帮助赞赏.

perl timer interrupt

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

可以使用条件拼接吗?

让我们考虑一下简单的Perl代码:

my @x = ( 1, 5, 9);

for my $i ( 0 .. $#x ) {
    splice( @x, $i, 1 ) if ( $x[$i] >= 5 );
}

print "@x";
Run Code Online (Sandbox Code Playgroud)

输出不正确,1 9但必须有1

如果我们使用-wflag 运行代码,则会打印警告

Use of uninitialized value within @x in numeric ge (>=) at splice.pl line 5.
Run Code Online (Sandbox Code Playgroud)

那么,使用条件拼接并且更好地将结果推入新变量并不是一个好习惯吗?

perl

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

标签 统计

perl ×8

debugging ×2

tie ×2

bash ×1

call-graph ×1

docker ×1

github ×1

github-api ×1

interrupt ×1

naming ×1

timer ×1

trace ×1

typeglob ×1