网站设计简单网页/客户管理软件哪个好用
分享 perl 语言学习资源
Perl 教程|极客教程 (geek-docs.com)
Perl [zh] (runebook.dev)
Perl 运算符 | 菜鸟教程 (runoob.com)
Perl Documentation - Perldoc Browser
Search the CPAN - metacpan.org
当然还有一些经典书籍,不再列举。
1、数字
1.1、数字表示
perl内部会把所有的数字当做浮点数进行处理。如果一个数字太长,可以使用下划线将数据分开,便于阅读。
与其他语言类似,支持整数的其他进制表示,十六进制0x,八进制0,二进制0b。
同样支持幂指数表示。
example:
$a = 1.23_456;#十进制
print "$a\n";$b = 0xFF_FF;#十六进制
print "$b\n";$c = 0377;#八进制
print "$c\n";$d = 0b1101;#二进制
print "$d\n";$e = 1.3e-3;#指数表示
print "$e\n";
result:
1.23456
65535
255
13
0.0013
1.2、数字操作符
基本的加减乘除运算,+ - * /
取模(求余)运算 % ,对于小数的求余 ,会将操作数的小数部分直接去掉(即,向下取整)然后再做求余运算,如 10.99 % 3 = 1。可以将操作数变为负数,如 -10.01 % -7 = -3;-10.01 % 7 = 4
指数运算符 ** ,如2**3 = 8。负数的非整数次方运算会产生复数,复数的运算需要Math::Complex 模块。
use Math::Complex;# $cc = cplx(3,4);
$cc = 3+4*i;
print $cc**2 . "\n";
Perl - Math::Complex [zh] (runebook.dev)
这个网址有很多中文的perl语法手册。
2、字符串
2.1、单引号字符串
单引号里面的转义字符,只支持单引号和反斜线。其他字符均表示自身。
示例:
$s1 = 'asdf\'\\\n qwe
\twefff';
print $s1 ;
result:
asdf'\\n qwe
\twefff
2.2、双引号字符串
双引号字符串支持所有的转义字符。
example:
$s2 = "asdf\'\\\nashs\thjlidce12#\"";
print $s2;
result:
asdf'\
ashs hjlidce12#"
perl中文教程:Perl 教程|极客教程 (geek-docs.com)
2.3、字符串操作符
. 可以将字符串前后连接。
x 可以将字符串复制粘贴,x后面的次数如果是小数,将小数向下取整后复制粘贴。
字符串和数字之间,perl 解释器会根据语境自动转换。
example:
print "HELLO WORLD " . "HELLO PERL" . "\n";# 字符串连接print "hello perl \n" x 3;print 3 x 10 . "\n";print 1 x 3.99 . "\n";print "A" . 3*8 . "\n";
result:
HELLO WORLD HELLO PERL
hello perl
hello perl
hello perl
3333333333
111
A24
3、perl 内置警告
有几种使能警告的方式:
1、在终端运行时: perl -w perl_program.pl
2、 perl代码的第一行:#! /usr/bin/perl/ -w
3、perl代码的前面打开使能:use warnings;
如果不理解警告信息,可以使用诊断:use diagnostics;
4、标量变量
标量变量只能存放一个标量值。命名方式和其他语言不一样的是,变量名称由$符号后接标识符组成。标识符由数字、字母、下滑线组成,不可以由数字开头。
变量赋值几种方式:
1、单纯使用 = 赋值。
2、使用 += 、*=、 /=、 .=、 等。
字符串标量变量的内插(仅双引号有效):
$str1 = "12345678980";
$str2 = "You input $str1";#将str1插入str2
print $str2;
$str3 = "You input \$str1";#转义字符使得str2不会插入str3
4、if
基本与C语言一致,example:
需要注意的是 perl 的 elseif 写作 elsif。
$str22 = "vhwroivqpo";
if($str22 eq "abc")
{print "OK" . "\n";
}
else
{print "NOT OK" ."\n";
}
5、用户输入
输入操作符 <STDIN> 示例:
print "input something you want please." . "\n";
$line = <STDIN>;
chomp $line;
print "your input is $line" . "\n";
chomp 操作用于去掉行尾的换行符。
6、while
perl 程序出现死循环,使用Ctrl + C强制结束。
while的句法和C语言中差不多。
Perl 循环 | 菜鸟教程 (runoob.com)
$count = 0;
while ($count < 10) {
$count += 2;
print "count is now $count\n"; #打印出2 4 6 8 10
}
7、undef
变量在定义后,如果没有被赋值,其默认值为 undef 。
对于数字变量,undef 等价于 0。如果是字符串变量,undef则表现为空字符串。
8、defined
由于undef 有默认行为,在程序执行过程中不报错,但是容易产生不易于理解的方面,可以使用defined函数分辨变量是否为undef,若是 未定义 则返回false,否则返回 true 。
example:
$ee ;
if(not defined($ee))
{print "it is a empty string" . "\n";
}$ee = "123";
if(defined($ee))
{print "it is a non-empty string :" .$ee . "\n";
}
result:
it is a empty string
it is a non-empty string :123
9、数组/列表
Perl 数组一个是存储标量值的列表变量,变量可以是不同类型。
数组变量以 @ 开头。访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取,实例如下。
索引序号由0开始,-1表示列表的最后一个元素,$#列表变量名 同样表示最后一个列表元素的索引值。数组内元素的修改则可以通过索引直接赋值的形式进行。
@list1 = (1,2,3,4,5,6,7,8);
print $list1[1] . "\n";
print $list1[$#list1] . "\n";# 索引最后一个
print $list1[-1] . "\n";# 索引最后一个
$list1[0] = "1";
$list1[1] = "2";
$list1[2] = "1";
$list1[3] = "2";
$list1[4] = "1";
$list1[5] = "2";
$list1[6] = "1";
$list1[7] = "2";
print $list1[1] . "\n";
print $list1[$#list1] . "\n";# 索引最后一个
print $list1[-1] . "\n";# 索引最后一个
9.1 数组创建
数组变量以 @ 符号开始,元素放在括号内,也可以以 qw 开始定义数组。Perl 允许使用任何标点符号作为分界符,最好不要用 #。
Perl 提供了可以按序列输出的数组形式,格式为 起始值 + .. + 结束值。
@p1 = qw !12 13 45 56 123 11 2223 2345!;
@p2 = qw <12 13 45 56 123 11 2223 2345>;
@p3 = qw *12 13 45 56 123 11 2223 2345*;
@p4 = qw ?12 13 45 56 123 11 2223 2345?;
@n1 = 0..10;
@a1 = a..d;@p5 = @p2; #将p2列表拷贝到p5。
($p2[0],$p2[1]) = ($p2[1],$p2[0]);#变量交换$size1 = @p1; #数组长度
$max_index = $#p1; #数组的最大索引号@p6 = (@p1,@n1,@a1);#列表的元素也可以为列表print $size1 . "\t" . $max_index . "\n";
print @p2;print "\n";
print @p6;print "\n";
print @n1;print "\n";
print @a1;print "\n";
result:
8 7
131245561231122232345
121345561231122232345012345678910abcd
012345678910
abcd
9.2 pop 、push
pop 操作将数组的最后一个元素取出并返回。
push,它可以将一个元素(或者一列元素)加在数组的末尾。
push 的第一个参数或者pop 的唯一参数必须是数组变量。
@t1 = 'a'..'z';print @t1;print "\n";
$a1 = pop @t1;print $a1;print "\n";
push @t1,'k';print @t1;print "\n";
push @t1,@t1;print @t1;print "\n";
result:
abcdefghijklmnopqrstuvwxyz
z
abcdefghijklmnopqrstuvwxyk
abcdefghijklmnopqrstuvwxykabcdefghijklmnopqrstuvwxyk
9.3 shift 、unshift
unshift 和 shift 对一个数组的开头进行操作(数组的左端有最小下标的元素)。
unshift类似于push;shift类似于pop。
@t1 = 'a'..'z';print @t1;print "\n";
$a1 = shift @t1;print $a1;print "\n";
unshift @t1,'kkkk';print @t1;print "\n";
unshift @t1,@t1;print @t1;print "\n";
result:
abcdefghijklmnopqrstuvwxyz
a
kkkkbcdefghijklmnopqrstuvwxyz
kkkkbcdefghijklmnopqrstuvwxyzkkkkbcdefghijklmnopqrstuvwxyz
9.4 取数组子集
@t1 = ('a'..'z')[10..15];print @t1;print "\n";
@t2 = @t1[1..3];print @t2;print "\n";
result:
klmnop
lmn
9.5 splice
splice函数用于实现数据元素替换。
示例:
@t1 = ('a'..'z')[10..20];print @t1;print "\n";
splice @t1, 2, 2, qw/& &/; print @t1;print "\n";
splice @t1, 4, 2, qw/* */; print @t1;print "\n";
result:
klmnopqrstu
kl&&opqrstu
kl&&**qrstu
9.6 split
示例:
# 定义字符串
$var_test = "runoob";
$var_string = "www-runoob-com";
$var_names = "google,taobao,runoob,weibo";# 字符串转为数组
@test = split('', $var_test);
@string = split('-', $var_string);
@names = split(',', $var_names);print "$test[3]\n"; # 输出 o
print "$string[2]\n"; # 输出 com
print "$names[3]\n"; # 输出 weibo
result:
o
com
9.7 join
example:
# 定义字符串
$var_string = "www-runoob-com";
$var_names = "google,taobao,runoob,weibo";# 字符串转为数组
@string = split('-', $var_string);
@names = split(',', $var_names);# 数组转为字符串
$string1 = join( '%', @string );
$string2 = join( '*', @names );print "$string1\n";
print "$string2\n";
result:
www%runoob%com
google*taobao*runoob*weibo
9.8 sort
sort 操作将输入的一串列表(可能是数组)根据内部的字符顺序进行排序。如对于ASCII 字符串,将根据ASCII 序进行排序。和reverse 一样,其参数是不会受到影响的。如果想将某个数组排序,那必须将排序之后的结果存回数组中。
# 定义数组
@sites = qw(google taobao runoob facebook apple blue break cup);
print "排序前: @sites\n";# 对数组进行排序
@sites = sort(@sites);
print "排序后: @sites\n";
result:
排序前: google taobao runoob facebook apple blue break cup
排序后: apple blue break cup facebook google runoob taobao
9.9 reverse
reverse(逆转)操作将输入的一串列表(可能是数组)按相反的顺序返回。注意reverse 返回逆转的列表,它不会改变其参数的值。如果返回值没有赋值给某个变量,那这个操作是没有什么意义的。
@t1 = ('a'..'z')[10..20];print "@t1\n";
@t2 = reverse @t1;print "@t2\n";
result:
k l m n o p q r s t u
u t s r q p o n m l k
10、foreach
主要用于遍历列表,语法格式:
foreach var (list) { ... }示例:
@t1 = ('a'..'z')[10..20];print "@t1\n"; foreach $k (@t1){print "$k \n"; }
result:
k l m n o p q r s t u
k
l
m
n
o
p
q
r
s
t
u
11、scalar
scalar只是用来告诉perl 解释器这是一个标量。
@rocks = qw(talc quartz jade obsidian);
print "How many rocks do you have?\n";
print "I have ", @rocks, "rocks!\n"; #错误,输出rocks 的名字
print "I have ". @rocks. "rocks!\n"; #正确,输出其数字
print "I have ", scalar @rocks, "rocks!\n"; #正确,输出其数字
result:
How many rocks do you have?
I have talcquartzjadeobsidianrocks!
I have 4rocks!
I have 4rocks!
12、多行输入 @lines = <STDIN>;
@lines = <STDIN>; #读入所有的行
chomp = (@lines); #去掉所有的换行符
或者:
chomp (@lines = <STDIN>); #读入所有的行,不包括换行符
Unix 系统中应当使用CTRL+D 表明end-of-file,在Windows 系统中使用CTRL+Z。
13、子程序(函数)
语法格式:
13.1、向子程序传递参数
Perl 子程序可以和其他编程一样接受多个参数,子程序参数使用特殊数组 @_ 标明。
因此子程序第一个参数为 $_[0], 第二个参数为 $_[1], 以此类推。
不论参数是标量型还是数组型的,用户把参数传给子程序时,perl默认按引用的方式调用它们。
# 定义求平均值函数
sub Average{# 获取所有传入的参数$n = scalar(@_);$sum = 0;foreach $item (@_){$sum += $item;}$average = $sum / $n;print '传入的参数为 : ',"@_\n"; # 打印整个数组print "第一个参数值为 : $_[0]\n"; # 打印第一个参数print "传入参数的平均值为 : $average\n"; # 打印平均值
}# 调用函数
Average(10, 20, 30);
13.2、子程序返回值
子程序可以向其他编程语言一样使用 return 语句来返回函数值。
如果没有使用 return 语句,则子程序的最后一行语句将作为返回值。
13.3、子程序的私有变量
默认情况下,Perl 中所有的变量都是全局变量,这就是说变量在程序的任何地方都可以调用。
如果我们需要设置私有变量,可以使用 my 操作符来设置。
my 操作符用于创建词法作用域变量,通过 my 创建的变量,存活于声明开始的地方,直到闭合作用域的结尾。
闭合作用域指的可以是一对花括号中的区域,可以是一个文件,也可以是一个 if, while, for, foreach, eval字符串。
13.4、变量临时赋值
我们可以使用 local 为全局变量提供临时的值,在退出作用域后将原来的值还回去。
local 定义的变量不存在于主程序中,但存在于该子程序和该子程序调用的子程序中。
example:
# 全局变量
$string = "Hello, World!";sub PrintRunoob{# PrintHello 函数私有变量local $string;$string = "Hello, Runoob!";# 子程序调用的子程序PrintMe();print "PrintRunoob 函数内字符串值:$string\n";
}
sub PrintMe{print "PrintMe 函数内字符串值:$string\n";
}sub PrintHello{print "PrintHello 函数内字符串值:$string\n";
}# 函数调用
PrintRunoob();
PrintHello();
print "函数外部字符串值:$string\n";
result:
PrintMe 函数内字符串值:Hello, Runoob!
PrintRunoob 函数内字符串值:Hello, Runoob!
PrintHello 函数内字符串值:Hello, World!
函数外部字符串值:Hello, World!
13.5、静态变量
state操作符功能类似于C里面的static修饰符,state关键字将局部变量变得持久。
state也是词法变量,所以只在定义该变量的词法作用域中有效。
注1:state仅能创建闭合作用域为子程序内部的变量。
注2:state是从Perl 5.9.4开始引入的,所以使用前必须加上 use。
注3:state可以声明标量、数组、哈希。但在声明数组和哈希时,不能对其初始化(至少Perl 5.14不支持)。
use feature 'state';sub PrintCount{state $count = 0; # 初始化变量print "counter 值为:$count\n";$count++;
}for (1..5){PrintCount();
}
result:
counter 值为:0
counter 值为:1
counter 值为:2
counter 值为:3
counter 值为:4
子程序调用过程中,会根据上下文来返回不同类型的值,比如以下 localtime() 子程序,在标量上下文返回字符串,在列表上下文返回列表。
# 标量上下文
my $datestring = localtime( time );
print $datestring;print "\n";# 列表上下文
# $year 的值是从 1900 年作为起始年开始的计数
($sec,$min,$hour,$mday,$mon, $year,$wday,$yday,$isdst) = localtime(time);
printf("%d-%d-%d %d:%d:%d",$year+1900,$mon+1,$mday,$hour,$min,$sec);print "\n";
result:
Wed Jun 12 15:17:32 2024
2024-6-12 15:17:32
14、运算符合集
14.1、算术运算符
14.2、比较运算符
14.3、逻辑运算符
14.4、赋值运算符
14.5、位运算符
14.6、引号运算符
14.7、其他运算符
14.8、运算符优先级
15、三目运算符 ? :
16、时间日期
Perl中处理时间的函数有如下几种:
- 1、time() 函数:返回从1970年1月1日起累计的秒数
- 2、localtime() 函数:获取本地时区时间
- 3、gmtime() 函数: 获取格林威治时间
Perl 时间日期 | 菜鸟教程 (runoob.com)
17、正则表达式
Perl的正则表达式的三种形式,分别是匹配,替换和转化:
-
匹配:m//(还可以简写为//,略去m)
-
替换:s///
-
转化:tr///
这三种形式一般都和 =~ 或 !~ 搭配使用, =~ 表示相匹配,!~ 表示不匹配。
Perl 正则表达式 | 菜鸟教程 (runoob.com)
18、POD
pod本身的功能很强大,但是对于我而言,我喜欢在perl脚本中用=pod、=cut实现多行注释。
=pod
========================================
Author:
Abstract:
Date:
Note:
========================================
=cut
19、__DATA__、__END__
可以将其后的代码注释掉。
example:
print "vcqhewviu" . "\n";# __END__
__DATA__print "vcqhewviu" . "\n";
print "vcqhewviu" . "\n";
print "vcqhewviu" . "\n";
result:
vcqhewviu
20、哈希
简单来说,哈希是 key/value 对的集合。
Perl中哈希变量以百分号 (%) 标记开始。
访问哈希元素格式:${key}。
以下是一个简单的哈希实例:
%data = ('google', 'google.com', 'runoob', 'runoob.com', 'taobao', 'taobao.com');print "\$data{'google'} = $data{'google'}\n";
print "\$data{'runoob'} = $data{'runoob'}\n";
print "\$data{'taobao'} = $data{'taobao'}\n";
$data{'google'} = google.com
$data{'runoob'} = runoob.com
$data{'taobao'} = taobao.com
Perl 哈希 | 菜鸟教程 (runoob.com)
相关文章:

【perl】基本语法 /备忘录/
分享 perl 语言学习资源 Perl 教程|极客教程 (geek-docs.com) Perl [zh] (runebook.dev) Perl 运算符 | 菜鸟教程 (runoob.com) Perl Documentation - Perldoc Browser Search the CPAN - metacpan.org 当然还有一些经典书籍,不再列举。 1、数字 1.1、数字表…...

mongodb 集群安装
整体架构图: 1. 配置域名 Server1: OS version: CentOS Linux release 8.5.2111 hostnamectl --static set-hostname mongo01 vi /etc/sysconfig/network # Created by anaconda hostnamemong01 echo "192.168.88.20 mong1 mongo01.com mongo…...

绿茶集团重启IPO:流量渐退、业绩波动,还能讲出好故事吗?
近日,绿茶集团有限公司(下称“绿茶集团”)向港交所递交上市申请,花旗、招银国际为其联席保荐人。 回望绿茶集团的上市之路,可谓有诸多坎坷。该公司于2021年3月首度向港交所发起冲击,但却将中文版招股书中的“流动负债总额”错写成…...

Git与SSH
Git Git是一种分布式版本控制系统,最初由Linus Torvalds为管理Linux内核开发而设计并开发。Git可以帮助开发团队协作管理代码,跟踪代码变更历史,并在需要时回溯到特定版本。 分布式版本控制:每个开发者都可以拥有完整的代码仓库…...

我的创作纪念日--码农阿豪
个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] 📱…...

Git 学习笔记(超详细注释,从0到1)
Git学习笔记 1.1 关键词 Fork、pull requests、pull、fetch、push、diff、merge、commit、add、checkout 1.2 原理(看图学习) 1.3 Fork别人仓库到自己仓库中 记住2个地址 1)上游地址(upstream地址):http…...

GitLab项目组相关操作(创建项目组Group、创建项目组的项目、为项目添加成员并赋予权限)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 ——《将…...

英语恶补ing
ing的词组都有停下来做某事的感觉了。 second hand是形容词了。 wouldnt buy这里的would是情态动词,也是助动词 助动词不能单独使用,要搭配实义动词,这样才能构成谓语 情态动词(modals)在英语中有多种作用ÿ…...

DS1339C串行实时时钟-国产兼容RS4C1339
RS4C1339串行实时时钟是一种低功耗的时钟/日期设备,具有两个可编程的一天时间报警器和一个可编程方波输出。地址和数据通过2线双向总线串行传输。时钟/日期提供秒、分钟、小时、天、日期、月份和年份信息。对于少于31天的月份,月末的日期会自动调整&…...

神经网络模型---LeNet-5
一、LeNet-5 1.定义LeNet-5模型 model models.Sequential([1.1添加一个二维卷积层,有6个过滤器,每个过滤器的尺寸是5x5。输入图像尺寸是28x28像素,具有1个颜色通道,激活函数是relu layers.Conv2D(6, (5, 5), activationrelu, input_shape…...

免费分享:1994-2020年中国各行业二氧化碳排放数据(附下载方法)
日前,国务院印发《2024—2025年节能降碳行动方案》针对重点领域进行部署,同时明确了制度标准、价格政策、资金支持、科技引领、市场化机制、全民行动等6项措施,为节能降碳提供支撑保障。1994-2020年中国各行业二氧化碳排放数据为评估环境政策…...

Qemu虚拟机在线迁移到VMware
libvirt版本:libvirt-10.0.0qemu版本:qemu-8.2.0 在生产环境中,大多数的场景是 vmware 虚拟机迁移到 qemu 环境,一般是通过关机然后导出、导入磁盘镜像来实现。 如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢?要求…...

计算机游戏因为d3dcompiler_47.dll丢失无法启动怎么办?解决只要d3dcompiler_47.dll丢失无法启动游戏软件的方法
d3dcompiler_47.dll 是一个动态链接库文件,属于 Microsoft DirectX 的一部分,主要负责编译和运行 3D 图形程序。它是支持 Direct3D 功能的核心组件,Direct3D 是一种用于编程 3D 图形的 API,广泛应用于游戏和图形密集型应用程序中。…...

LDO的原理及测试方法
一、基本结构 这是LM317芯片的核心,这个电路单元称为Bandgap Reference带隙基准源。属于模拟集成电路中的经典电路结构。 LDO拓扑结构图 常见的基本结构 利用VBE的负温度系数,而VT是正温度系数,正负温度系数抵消就的得到稳定的基准参考电压了(三极管的方程VBE=VT*In(lC/IS…...

图论算法学习
图论 dfs是可一个方向去搜,不到黄河不回头,直到遇到绝境了,搜不下去了,再换方向(换方向的过程就涉及到了回溯)。bfs是先把本节点所连接的所有节点遍历一遍,走到下一个节点的时候,再…...

面试题——RabbitMQ
★1.如何保证消息的幂等性?(如何避免消息重复投递) 生产端: 在消息发送前,先查询数据库此消息是否被处理过。处理过则忽略、否则继续处理,并在处理完成后修改状态为已处理。 消费端: 每个消息都生成全局唯一ID或业务I…...

前端开发之浏览器垃圾回收机制
前端开发之浏览器垃圾回收机制 V8引擎,作为Chrome浏览器和Node.js等环境下的JavaScript运行引擎,其垃圾回收机制是确保高效内存管理的关键。 V8垃圾回收机制的深度解析与优化 V8 JavaScript引擎采用了高效的垃圾回收机制,其中核心的实现特…...

less-loader的less转成CSS的底层原理
在现代Web开发中,CSS预处理器如LESS极大地提高了编写样式的效率和灵活性。而less-loader作为webpack的一个加载器,用于将LESS文件转换为CSS文件。本文将深入探讨less-loader如何工作,从解析LESS文件到生成最终的CSS文件的底层原理。 工作流程…...

解锁Flutter中的ProcessResult:让外部命令执行变得轻松
介绍 在我们的编程世界中,有时候我们需要与外部系统或者命令行交互。这就像在一场迷宫中寻找出口一样,我们需要向迷宫的门口询问正确的道路。而在 Flutter 中,这个问路的过程就是通过 ProcessResult 来实现的。 为什么要使用 ProcessResult…...

第二十五篇——信息加密:韦小宝说谎的秘诀
目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 加密这件事,对于这个时代的我们来说非常重要,那么…...

Redis 主从复制+哨兵+集群
1、总结写在前面 Redis 集群 数据分片 高可用性 Redis 哨兵 主从复制 故障转移 2、主从复制 2.1、准备配置 查看docker 容器 ip docker inspect 容器id | grep IPAddressdocker inspect -f{{.Name}} {{.NetworkSettings.IPAddress}} $(docker ps -aq)修改配置文件 初始…...

cpolar:通过脚本自动更新主机名称和端口号进行内网穿透【免费版】
cpolar 的免费版经常会重新分配 HostName 和 Port,总是手动修改太过麻烦,分享一下自动更新配置文件并进行内网穿透的方法。 文章目录 配置 ssh config编写脚本获取 csrf_token打开登陆界面SafariChrome 设置别名 假设你已经配置好了服务器端的 cpolar。 …...

【Python日志模块全面指南】:记录每一行代码的呼吸,掌握应用程序的脉搏
文章目录 🚀一、了解日志🌈二、日志作用🌈三、了解日志模块⭐四、日志级别💥五、记录日志-基础❤️六、记录日志-处理器handler🎬七、记录日志-格式化记录☔八、记录日志-配置logger👊九、流程梳理 &#x…...

SpringBoot 多种优雅的线程池配置与使用(异步执行函数,反射机制,动态识别参数,有返回值)
想要明白生活你需要先经历它,而不是总在分析它。 —萨莉鲁尼 文章目录 前言一、@Async注解1. 概念2. 使用2.1 使用@EnableAsync启动函数异步支持2.2 不会异步执行的坑2.2.1 为什么内部调用不会异步执行?2.2.2 如何确保@Async方法异步执行?3. 配置线程池3.1 通过代码配置3.1.…...

ansible copy模块--持续创作中
copy模块用于将文件从ansible控制节点(管理主机)或者远程主机复制到远程主机上。其操作类似于scp(secure copy protocol)。 关键参数标红。 参数: src:(source:源) 要复制到远程…...

自学SAP是学习ECC版本还是S4版本?
很多人想学SAP,问我应该学ECC版本还是S4版本,我的建议如果你是自学的话,我个人建议使用ECC版本就行,因为这两个版本前台业务和后台配置的操作差异并不大,主要差异在于数据库的差异,前台业务操作和后台系统配…...

银河麒麟4.0.2安装带有opengl的Qt5.12.9
银河麒麟4.0.2下载地址:银河麒麟-银河麒麟(云桌面系统)-银河麒麟最新版下载v4.0.2-92下载站 VirtualBox:https://www.virtualbox.org/wiki/Downloads qt下载:Index of /archive/qt/5.12/5.12.9 1安装VirtualBox:网上教材比较多 1)安装完后安…...

django学习入门系列之第二点《浏览器能识别的标签3》
文章目录 列表表格往期回顾 列表 无序列表 <!-- <ul </ul> 无序列表 --> <ul><li> 内容1 </li><li> 内容2 </li><li> 内容3 </li><li> 内容4 </li> </ul>有序列表 <!-- <ol> &…...

git常见实用命令,简单上手操作
常用命令: 添加远程账号名称:git config --global user.name ‘’ 添加用户eamil:git config --global user.email ‘’ 初始化厂库:git init 新建文件夹:mkdir 文件夹名 新建文件:touch 文件名 查看…...

2-11 基于matlab的BP-Adaboost的强分类器分类预测
基于matlab的BP-Adaboost的强分类器分类预测,Adaboost是一种迭代分类算法,其在同一训练集采用不同方法训练不同分类器(弱分类器),并根据弱分类器的误差分配不同权重,然后将这些弱分类器组合成一个更强的最终…...