小编hma*_*tt1的帖子

为什么在调用函数时使用`go`关键字?

我正在浏览一个TCP服务器的例子.他们定义了一个函数并用以下函数调用它

go handleRequest(conn)
Run Code Online (Sandbox Code Playgroud)

我觉得看到go关键字很奇怪,所以我试了一下没有:

handleRequest(conn)
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,这有效!

  • 如果两者的工作方式相同,为什么要使用go关键字呢?
  • 如果他们的工作方式不同,有什么区别?
  • 是否有某种风格指南可供使用,或者您是否应该使用个人偏好?

go

33
推荐指数
2
解决办法
9819
查看次数

为什么不在Perl中使用严格和警告?

我已经看到混淆和高尔夫的代码保持关闭以避免声明变量,我可以看到在命令行上使用-e开关跳过它们以保持单行程更短.在某些情况下,您不希望use strict和/或use warnings在生产代码中?你不想使用它们的原因是什么?

问题出现了,因为我在这里看过有经验的Perl用户告诉Perl新手总是使用它们的帖子.

我确实在这里找到了一些相关的问题,但他们没有解释我们可能希望关闭它们的情况.

perl

13
推荐指数
2
解决办法
2295
查看次数

为什么$ {fh}在逐行读取时的行为与$ fh不同?

这个脚本:

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

my ${fh};

open($fh, '<', "some_file.txt") or die "fail\n";

while(my $line = <${fh}> ) {
    print $line;
}
close $fh;
Run Code Online (Sandbox Code Playgroud)

输出:

GLOB(0x5bcc2a0)
Run Code Online (Sandbox Code Playgroud)

为什么这是输出?

如果我<${fh}>改为<$fh>,它将some_file.txt按预期逐行打印.我认为括号可以用来分隔变量名称,这my ${var}将是相同的my $var.

是否有其他情况下添加{}变量名称会导致问题?

我在Red Hat和Cygwin Perl 5.14上尝试了Perl 5.8.8.

perl

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

我从哪里获得 `thread_ts` 来启动带有传入 webhook 的 Slack 线程?

在 Slack 的传入 webhook文档中,他们提到thread_ts在请求正文中包含 以启动线程。

{
    "text": "Hello, world.",
    "thread_ts": "12345.6789"
}
Run Code Online (Sandbox Code Playgroud)

当我向传入的 webhook url 发出 POST 请求时,响应正文不包含thread_ts. 我期待thread_ts在响应正文中,但响应正文只是说ok并且不包含任何 json。

是否可以在thread_ts没有其他应用程序或身份验证令牌的情况下获得?我是否必须使用另一个 Slack API?我现在只配置了传入的 webhook。


附带说明一下,如果使用 Slack 的新 Block Kit API 更容易做到这一点,那也可以。

slack-api slack

10
推荐指数
1
解决办法
3469
查看次数

什么 c 代码会编译为类似 `call *%eax` 的代码?

我正在使用 c 和程序集,我call *%eax在几个地方看到过。我想编写一个小的 c 程序来编译成这样的东西,但我被卡住了。

我正在考虑像在这个问题中那样编写一些汇编代码:x86 汇编指令:在我的情况下仅使用 AT&T 语法调用 *Reg以获得一个带有调用的小示例。但是,这并不能解决我的紧迫问题,即什么样的 c 代码会编译成那样?

我知道这是对 eax 指向的地址的调用。

c assembly

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

从`s/^/1 /;`中删除`^`导致我的代码失败.为什么?

我一直在代码高尔夫交易所处理这个问题,这就是为什么我的代码看起来很有趣.

这是一个程序,use strictuse warnings重新创建问题:

use strict;
use warnings;

$_ = "";

for my $i (1..33){
    s//1/;   # Just prepends 1 to the string $_
}
print "$_\n";

for my $i (34..127) {
    if( chr(y/1/1/) !~ /[!"'()*+,-.\/12357:;<=>?CEFGHIJKLMNSTUVWXYZ[\\\]^_`cfhijklmnrstuvwxyz{|}~]/ ) {
        print chr y/1/1/;
    }
    s/^/1/;   # Prepends 1 to the start of the string.
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

111111111111111111111111111111111
#$%&04689@ABDOPQRabdegopq
Run Code Online (Sandbox Code Playgroud)

这可以像我期望的那样工作.但是,当我^取出第二个正则表达式时,正则表达式不再匹配和延长字符串.

use strict;
use warnings;

$_ = "";

for my $i (1..33){
    s//1/;
}
print "$_\n"; …
Run Code Online (Sandbox Code Playgroud)

regex perl

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

如何确定Perl模块是否是跨平台的?

例如,我想压缩脚本生成的日志文件.我使用的是5.8.8版本,因此内核中没有任何内置功能.该脚本是跨平台的,Linux,Solaris,AIX,HPUX和Windows.

现在我正在考虑使用IO::Compress::Gzip.该模块是否存在任何已知错误?它适用于所有平台吗?

为了进一步概括,如何判断某个模块是否存在任何已知错误,以及该模块将运行的平台是什么?

perl

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

Windows上POSIX :: uname()版本号有哪些不同的可能值?

我想确定我正在使用的Windows版本POSIX::uname.我知道它在Windows 2012上返回6.2.我找到了这些值的表,Windows版本和相应的版本号,但我找不到它了.我一直在搜索文档,而且我无法在每个操作系统上运行uname来立即测试它.有没有人有链接或知道哪个数字对应于哪个版本的Windows?

http://perldoc.perl.org/perlport.html

http://perldoc.perl.org/POSIX.html

windows perl uname

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

来自curl php的资源ID#2响应

我正在尝试将此命令行解释为curl php

curl命令:

curl https://api.sandbox.paypal.com/v1/oauth2/token \
 -H "Accept: application/json" \
 -H "Accept-Language: en_US" \
 -u "{clientId}:{secret}" \
 -d "grant_type=client_credentials"
Run Code Online (Sandbox Code Playgroud)

这是我的curl php代码:

$url = 'https://api.sandbox.paypal.com/v1/oauth2/token';
$info = array(
        'grant_type' =>'client_credentials'
);
 $post_field_string = http_build_query($info, '', '&');

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                         
    'Accept-Language: en_US')
); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD,'AQHeHhDPIpAoxWaNkXOwCNFV4cZUobhqDa_4qHPKh0iDrSd6rLaxIknT-lmgwd:EJHLmhBMT9dB48kou4V0jyJzaq-CqUlY0zS6QKsxOZKI15hZHZjTfoSV7MO8we');
curl_setopt($ch, CURLOPT_POSTFIELDS,   $post_field_string );
 curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_HEADER,1);   
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");    

$exec = curl_exec($ch);
curl_exec($ch);

curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果:

Resource id #2
Run Code Online (Sandbox Code Playgroud)

我刚开始卷曲,但我正在努力研究它.这是我的curl php中的正确代码吗?

我希望这个样本响应来自卷曲:

{
  "scope": "https://api.paypal.com/v1/payments/.* https://api.paypal.com/v1/vault/credit-card https://api.paypal.com/v1/vault/credit-card/.*",
  "access_token": "EEwJ6tF9x5WCIZDYzyZGaz6Khbw7raYRIBV_WxVvgmsG", …
Run Code Online (Sandbox Code Playgroud)

php rest curl paypal

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

管道Perl脚本输出到head -n 10打印10行后会杀死脚本

我的Perl脚本输出并记录了许多行文本,并进行了一些清理并压缩了END块中的一些日志.

问题是当您在命令行上执行以下操作时:

perl myscript.pl | head -n 10
Run Code Online (Sandbox Code Playgroud)

这会导致脚本在输出10行后立即死亡,因此END块不会执行,并且日志不会被压缩.有没有办法解决这个问题,并确保我的END块中的代码仍然执行?

unix linux perl head

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

标签 统计

perl ×6

assembly ×1

c ×1

curl ×1

go ×1

head ×1

linux ×1

paypal ×1

php ×1

regex ×1

rest ×1

slack ×1

slack-api ×1

uname ×1

unix ×1

windows ×1