我正在努力使用.strip和以下代码行.
谢谢您的帮助.
f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])
Run Code Online (Sandbox Code Playgroud) 我正在学习去和玩字符串时我注意到如果一个字符串是单引号,那么golang给我一个错误,但双引号工作正常.
func main() {
var a string
a = 'hello' //will give error
a = "hello" //will not give error
}
Run Code Online (Sandbox Code Playgroud)
这是我在我的系统上遇到的错误:
illegal rune literal
Run Code Online (Sandbox Code Playgroud)
当我尝试在操场上做同样的事情时,我收到此错误:
prog.go:9: missing '
prog.go:9: syntax error: unexpected name, expecting semicolon or newline or }
prog.go:9: newline in string
prog.go:9: empty character literal or unescaped ' in character literal
prog.go:9: missing '
Run Code Online (Sandbox Code Playgroud)
我无法理解这背后的确切原因,例如Python,Perl可以声明一个包含单引号和双引号的字符串.
我正在尝试使用我的数据签名 Crypt::OpenSSL::RSA perl.这是我的代码
use Crypt::OpenSSL::RSA;
open $privfh, '>:encoding(UTF-8)', 'private_key';
$rsa = Crypt::OpenSSL::RSA->generate_key(1024);
$key_string=$rsa->get_private_key_string();
print $privfh $key_string;
$rsa_priv = Crypt::OpenSSL::RSA->new_private_key($key_string);
$rsa_pub = $rsa->get_public_key_string();
$plaintext="hello";
$signature = $rsa_priv->sign($plaintext);
print "Signed correctly\n" if ($rsa->verify($plaintext, $signature));
Run Code Online (Sandbox Code Playgroud)
这个程序运行正常,我能够正确签名数据.但问题是我必须签署大量数据,所以我写的key_string一个文件,以便我可以一次又一次地使用它,但问题是当我尝试再次使用它使用以下代码
use Crypt::OpenSSL::RSA;
open FILE ,'<','private_key';
{
local $/;
$keystring=<FILE>;
}
print "$keystring\n";
$rsa_priv = Crypt::OpenSSL::RSA->new_private_key($key_string);
Run Code Online (Sandbox Code Playgroud)
它抛出错误而不是生成$rsa_priv.该程序给出的错误是
RSA.xs:178: OpenSSL error: no start line at testperl.pl line 11, <FILE> line 1.我该怎么做才能在一次生成密钥后一次又一次地签名.
我试图在PostrgeSQL中运行此函数:
CREATE OR REPLACE FUNCTION create_partition_and_insert()
RETURNS trigger AS
$BODY$
DECLARE
partition VARCHAR(25);
_date text;
BEGIN
EXECUTE 'SELECT REPLACE(' || quote_literal(NEW.date) || ',''-'',''_'') into _date';
partition := TG_RELNAME || '_' || _date || ‘p’;
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=partition) THEN
RAISE NOTICE 'A partition has been created %',partition;
EXECUTE 'CREATE TABLE ' || partition || ' (check (date = ''' || NEW.date || ''')) INHERITS (' || TG_RELNAME || ');';
END IF;
EXECUTE 'INSERT INTO ' || …Run Code Online (Sandbox Code Playgroud) 我有一个 EKS 1.21 集群,我正在尝试将其升级到 1.22。在使用已弃用的 API 版本升级资源时,我发现我有一个名为的变异 Webhook 配置,pod-identity-webhook该配置正在使用已弃用的 APIVersion admissionregistration.k8s.io/v1。
似乎pod-identity-webhook是由 AWS 管理的,这是由 AWS 作为集群升级过程的一部分进行升级还是我必须升级它?如果我必须升级它,那么有人知道如何做到这一点,因为我无法在谷歌上找到任何升级文档。
我在包pack1下有以下代码。文件名是pack1.go
package pack1
var Pack1Int int = 42
var pack1Float = 3.14
func ReturnStr() string {
return "Hello world!"
}
Run Code Online (Sandbox Code Playgroud)
并在主程序中遵循以下代码。文件名是package_test.go
package main
import (
"fmt"
"./pack1"
)
func main() {
var test1 string
test1 = pack1.ReturnStr()
fmt.Printf("Return string from pack1 : %s\n", test1)
fmt.Printf("Integer from pack1 : %d\n", pack1.Pack1Int)
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用命令运行它时,出现go run package_test.go以下错误:
go run: cannot run *_test.go files (package_test.go)
但是,如果我将文件重命名为,abc.go那么我将获得正确的输出,即
Return string from pack1 : Hello world!
Integer from pack1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 ansible 使用 pm2 启动节点程序。问题是该pm2 start命令在 ansible 下不是幂等的。再次运行时报错。
这是我的 ansible play
- name: start the application
become_user: ubuntu
command: pm2 start app.js -i max
tags:
- app
Run Code Online (Sandbox Code Playgroud)
现在,如果我第一次运行它,那么它运行正常,但是当我再次运行它时,我收到错误消息,告诉我脚本已经在运行。
绕过此错误并通过 ansible 正确处理 pm2 的正确方法是什么。
我有一个名为的文件redis_db.py,其中包含连接到 redis 的代码
import os
import redis
import sys
class Database:
def __init__(self, zset_name):
redis_host = os.environ.get('REDIS_HOST', '127.0.0.1')
redis_port = os.environ.get('REDIS_PORT', 6379)
self.db = redis.StrictRedis(host=redis_host, port=redis_port)
self.zset_name = zset_name
def add(self, key):
try:
self.db.zadd(self.zset_name, {key: 0})
except redis.exceptions.ConnectionError:
print("Unable to connect to redis host.")
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)
我有另一个名为 app.py 的文件,如下所示
from flask import Flask
from redis_db import Database
app = Flask(__name__)
db = Database('zset')
@app.route('/add_word/word=<word>')
def add_word(word):
db.add(word)
return ("{} added".format(word))
if __name__ == '__main__':
app.run(host='0.0.0.0', port='8080')
Run Code Online (Sandbox Code Playgroud)
现在我正在为 add_word 函数编写单元测试,如下所示 …
use strict;
use warnings;
print "hello\n";
sleep(10);
print "print before alarm\n";
alarm 5;
$SIG{'ALRM'} = \&alarm;
$SIG{'INT'} = \&alarm;
$SIG{'TERM'} = \&alarm;
sub alarm {
print "alarm signal hanndled\n";
}
Run Code Online (Sandbox Code Playgroud)
我无法处理警报或按 ctrl+c 的信号。我搜索并发现这是一种进行信号处理的方式。我究竟做错了什么?
我使用go version go1.5.1 linux/amd64的debian 8.2 3.16.0-4-amd64。我golang使用https://golang.org/doc/install安装。
这是我放在我的~/.profile文件中的内容
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:/home/shivams/go/bin
Run Code Online (Sandbox Code Playgroud)
go env在我的机器上运行给出了这个输出
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/shivams/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT=""
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
Run Code Online (Sandbox Code Playgroud)
里面的目录结构/home/shivams/go是{pkg,src,bin}. 在 src 目录中,它就像test/hello.go.
如果我在srcdir 中并运行go run test/hello.go它,它将完美运行。此外,如果我运行go build test/hello.go它会hello在同一目录中创建一个可执行文件。
但是,如果我尝试运行,go install test/hello.go则会出现此错误
go install: no install location for .go files listed …
我正在阅读Intermediate Perl书,在Chapt10中有这段代码.我添加了一些打印语句,但核心逻辑没有被触及.
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @input = qw(Gilligan Skipper Professor Ginger Mary Ann);
my @sorted_positions = sort { $input[$a] cmp $input[$b] } 0 .. $#input;
print Dumper( \@sorted_positions );
my @ranks;
@ranks[@sorted_positions] = ( 1 .. @sorted_positions );
print Dumper( \@ranks );
foreach ( 0 .. $#ranks ) {
print "$input[$_] sorts into position $ranks[$_]\n";
}
Run Code Online (Sandbox Code Playgroud)
当我检查Dumper输出然后检查@sorted_positions阵列时,它正在打印
$VAR1 = [
5,
0,
3,
4,
2,
1
];
Run Code Online (Sandbox Code Playgroud)
这对我来说很有意义,但对于@ranks阵列来说它是打印的
$VAR1 = [ …Run Code Online (Sandbox Code Playgroud) 0777我希望在perl中有一个衬里模式,它等于下面的脚本
open my $fh, "<","file";
local $/;
my $s = <$fh>; #now whole file stored into the $s
Run Code Online (Sandbox Code Playgroud)
在这里,我们没有使用任何循环将所有元素(单个数据)存储在一起。
但是在Perl One衬纸中,为什么我们使用-p|-n开关启用Slurp模式(-0777)?这里的性能提升是多少?
-p | -n用于循环目的。因此,一根衬板的实际性能类似于以下脚本或其他内容?
open my $fh, "<","file";
my $s;
while (<$fh>)
{
$s.=$_;
}
print $s;
Run Code Online (Sandbox Code Playgroud) 我使用Perl通过套接字编程实现客户端 - 服务器通信.
我正在从客户端向服务器发送一些数据,但除非使用Ctrl-C终止客户端,否则我无法在服务器上看到任何内容.
此外,从服务器返回的任何内容都不会到达客户端.
这是我第一次尝试进行客户端 - 服务器编程,我不知道该怎么做.
我正在使用该IO::Socket::INET模块.
这是我的代码
服务器
use IO::Socket::INET;
my ($socket, $client_socket);
my ($peeraddress, $peerport);
$| = 1;
$socket = new IO::Socket::INET (
LocalHost => '127.0.0.1',
LocalPort => '5000',
Proto => 'tcp',
Listen => 5,
Reuse => 1
) or die "Error in socket creation: $!\n";
while (1) {
$client_socket = $socket->accept();
$data = <$client_socket>;
print "Received from socket is $data\n";
print "Sending to socket\n";
$client_socket->send("hello");
}
$socket->close();
Run Code Online (Sandbox Code Playgroud)
客户
use IO::Socket::INET;
$| = 1; …Run Code Online (Sandbox Code Playgroud) perl ×5
go ×3
python ×2
amazon-eks ×1
ansible ×1
debian ×1
dynamic-sql ×1
encryption ×1
kubernetes ×1
node.js ×1
npm ×1
partitioning ×1
plpgsql ×1
pm2 ×1
postgresql ×1
sign ×1
sockets ×1
sorting ×1
string ×1
triggers ×1
unit-testing ×1