小编Eug*_*kov的帖子

为什么perl regex'*?' 保持贪心?

我运行一个简单的程序:

my $_ =  '/login/.htaccess/.htdf';
s!(/\.ht.*?)$!/!;
print "$_ $1";
Run Code Online (Sandbox Code Playgroud)

OUT
/login/ /.htaccess/.htdf

我希望这个正则表达式只匹配/.htdf.

例2:

my $_ =  'abcbc';
m/(b.*?)$/;
print "$_ $1\n";
Run Code Online (Sandbox Code Playgroud)

OUT
abcbc bcbc

我期待bc.

为什么*?还贪心?(我想要最小的比赛.)

regex perl

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

是否为新的子程序调用或新的@_重用了@_元素?

我想这取决于背景.

  1. 它在&func呼叫时被重用
  2. 它是为所有其他呼叫创建的

我有这个代码,eval在第1004行遇到意外的电话:

sub save_context {
    @DB::context =  ( \@_, (caller 2)[8..10], $@, $_ );  # line 1004
    print_state "\nTRAPPED IN  ", "\n\n"   if _ddd;
    DB::state( 'inDB', 1 );
}
Run Code Online (Sandbox Code Playgroud)

这个堆栈跟踪:

DB /x/local/lib/perl5/Devel/DebugHooks.pm 1419 DB::orig_frames 
DB /x/local/lib/perl5/Devel/DebugHooks.pm 1460 DB::push_frame 
DB /x/local/lib/perl5/Devel/DebugHooks.pm 1004 DB::__ANON__[/x/local/lib/perl5/Devel/DebugHooks.pm:1460] 
DB /x/local/lib/perl5/Devel/DebugHooks.pm 1004 (eval) 
DB /x/local/lib/perl5/Devel/DebugHooks.pm 1251 DB::save_context 
DB /x/local/lib/perl5/Devel/DebugHooks.pm 1288 DB::DB_my 1
MyApp::Controller::User /x/lib/MyApp/Controller/User.pm 41 DB::DB 1
Mojolicious /x/local/lib/perl5/Mojolicious.pm 133 MyApp::Controller::User::list 
Mojolicious::Plugins /x/local/lib/perl5/Mojolicious/Plugins.pm 15 Mojolicious::__ANON__[/x/local/lib/perl5/Mojolicious.pm:133] …
Run Code Online (Sandbox Code Playgroud)

debugging perl

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

如何回退到核心对象的字符串化?

包重载字符串化运算符:

use overload '""' => sub { ... };
Run Code Online (Sandbox Code Playgroud)

但在某些地方我想要回退到默认的字符串化行为.

我应该怎样对这些对象Object=HASH(0x7693218)再次获取字符串?

print ${ \$obj }; # Did not help
Run Code Online (Sandbox Code Playgroud)

perl

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

postgresql-client-13 :取决于:libpq5 (>= 13~beta2) 但要安装 12.3-1.pgdg18.04+1

我想尝试新的 PostgreSQL 并按照说明进行操作。但是安装失败:

$ sudo apt install postgresql-client-13
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 postgresql-client-13 : Depends: libpq5 (>= …
Run Code Online (Sandbox Code Playgroud)

postgresql linux-mint-19 postgresql-13

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

如何调试服务器端脚本以便从客户端上传文件(本例中为curl)?

我正在尝试从CLI编写一个Perl Mojolicious请求.我想将文件作为参数传递给此请求.以下是我到目前为止所尝试的内容,但无济于事.

下面的例子是我的工作正常.

curl (working):          curl -X POST "http://localhost:3000/uploadtest.pl/status?Token=6d949625-2f07-1e7a-d57a-de0fa949035d"
Mojolicious (working):  perl ./uploadtest.pl get -v -M POST /status?"Token=3780e99a-fc2c-54e5-2c31-417f945c1792"
Run Code Online (Sandbox Code Playgroud)

下面是我被卡住的例子,因为下面的perl脚本将文件作为输入[文件上传]:

curl (working):          curl -X POST -F Input_File=@d:/xml/test.xml "http://localhost:3000/uploadtest.pl/upload?Input_Type=XML
Mojolicious (not working):  perl ./uploadtest.pl get -v -M POST /upload?"Input_Type=XML&Input_File=d:/xml/test.xml"
Run Code Online (Sandbox Code Playgroud)

如果有人帮我解决这个问题,那将会很有帮助.


#uploadtest.pl

use Mojolicious::Lite;

# Upload form in DATA section
get '/' => 'form';


# Check status
post '/status' => sub {
  my $self = shift;
  my $Token = $self->param('Token');
  $self->render(text => "In process: $Token");
};

# Multipart upload handler
post '/upload' => …
Run Code Online (Sandbox Code Playgroud)

perl mojolicious

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

为什么移动的代码没有在git diff中着色?

我安装了最新的git并将其配置为突出显示移动的代码:

$ git config diff.colormoved default
Run Code Online (Sandbox Code Playgroud)

以下是代码移动时的外观(参见1-> 2) 在此输入图像描述

但3-4不会突出显示为已移动的代码.

这是独立的变化:

在此输入图像描述

git git-diff

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

查询和/或正文中的Swagger参数

我们的API具有这样的端点,通过合并这两组参数,同时支持来自query和来自的body参数.

例如:

/foo?param1=value1
body: {
    param2=value2
}
Run Code Online (Sandbox Code Playgroud)

生成的参数集将包含两个,param1param2.

此端点可用作:

/foo?param1=value1&param2=value2
Run Code Online (Sandbox Code Playgroud)

要么

/foo
body: {
    param1=value1,
    param2=value2
}
Run Code Online (Sandbox Code Playgroud)

有没有办法如何在Swagger中指定这种"二元性"?

UPD
我想我应该将参数定义为:bodyquery

in:
  - body
  - query
Run Code Online (Sandbox Code Playgroud)

swagger swagger-codegen

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

如何在项目中使用“--assume-unchanged”文件?

我有配置文件:conf/local.conf我为其运行下一个命令:

git update-index --assume-unchanged local.conf
Run Code Online (Sandbox Code Playgroud)

直到我切换到另一个分支或拉取之前都可以。

如何保留--assume-unchanged分支之间的标志?

UPD
一些即将发生的事情的例子:

$ git checkout 296-ToS-component 
error: Your local changes to the following files would be overwritten by checkout:
    conf/local.conf
Please commit your changes or stash them before you switch branches.
Aborting
$ git checkout -f 296-ToS-component 
error: Entry 'conf/local.conf' not uptodate. Cannot merge.
Run Code Online (Sandbox Code Playgroud)

我希望它的工作原理如下:

  1. conf/local.conf 已保存
  2. 分支已切换
  3. conf/local.conf 被保存的版本替换

git git-assume-unchanged

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

bakup postgresql 数据库的推荐方法是什么:pg_dump VS pg_basebackup?

PostgreSQL服务器中有两种不同的工具:pg_dumppg_basebackup

这个工具有什么区别?
使用哪一个来创建数据库备份?

postgresql database-backups

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

如何替换 postgresql 函数体?

DOC 中只描述了如何更改函数定义。

但我只更改了函数体($$sql之间的文本$$)。

如何只替换这个函数体?我应该使用CREATE OR REPLACE语法来完成这个吗?

postgresql create-function

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