
语言: Perl
北雨南萍
长期专注于实时音视频通信技术、音视频处理技术,包括基于webrtc的音视频通信解决方案,基于ffmpeg的媒体处理解决方案。
展开
-
Perl字符串处理函数大全
本文重点讨论Perl字符串处理函数的用法,每种函数都有各自的特点和作用,下面请看本文详细介绍.Perl字符串处理函数1. index语法:position=index(string,substring,position);语义:返回子串substring在字符串string中的位置,如果不存在则返回-1。参数position是可选项,表示匹配之前跳过的字符数,或转载 2013-02-17 22:13:22 · 1515 阅读 · 0 评论 -
POE状态机入门与进阶
一.前言至于POE的应用,我不想多说什么,因为需要使用状态机的地方太多。举一个极端的例子,windows下的perl-tk对于多线程的支持极不稳定,如果在其中加入一个大数据量的处理应用,结果往往会是一个无法动弹的程序。这时除了使用POE,也许没有更好的解决办法了。另外,python中有叫twisted的类似框架,被广泛地应用在网络服务中,具体的使用方法可以参考Oreilly出版转载 2013-04-11 14:35:57 · 1242 阅读 · 0 评论 -
Perl eval语句
perldoc >>>http://perldoc.perl.org/functions/eval.htmldo 语句做了类似的功能:do 'filea' == eval `cat filea`;形式1.eval Expression2.eval BLOCK"1"在运行时编译和执行"2"在编译时编译,运行时执行转载 2013-04-15 21:50:29 · 1101 阅读 · 0 评论 -
POE初学者入门简介
一、What Is POE, And Why Should I Use It?什么是POE? 为什么要使用POE?Most of the programs we write every day have the same basic blueprint: they start up, they perform a series of actions, and then they翻译 2013-04-14 14:16:59 · 2699 阅读 · 0 评论 -
perl中my 和 our的区别
perl中our的用法require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败。所以它的作用就是保证模块调用环境的 Perl 版本。our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量。不过,经过 our 声明的变量,它会变得像一个词法变量一样,其实这也是 our 存在转载 2013-04-26 17:59:48 · 895 阅读 · 0 评论 -
POE::Wheel::Run示例详解
一、POE简介perl的POE模块是一个事件驱动的有限状态机编程框架,它用一个单进程模拟多线程的多任务执行模块,并提供的非阻塞的IO操作(就像C语言下面的libevent库)。它能干的事情很多,并且写起来代码很清晰,可读性非常好。POE最重要的一点是,它尝试着把在事件驱动环境中编程的恼人细节给隐藏起来。POE的组成部分包括:states(状态),kernel(原创 2013-04-27 21:30:56 · 1742 阅读 · 0 评论 -
Perl实现后台守护进程
有时候需要用perl实现一个服务程序,即linux常说的守护程序(daemon),而我们往往希望这样的程序能够在后台运行。有些人一般是直接用bg命令把程序放到了后台,这么做有一些问题。下面提供一个标准的守护进程的代码:#!/usr/bin/perl -wuse strict; use POSIX; ### 用fock生成进程,并让父进程退出##o原创 2013-05-03 12:38:36 · 4316 阅读 · 1 评论 -
修改perl CPAN模块安装的配置文件
方法一:直接删除了cpan的配置文件及相关的软件#cd /etc/perl/CPAN#rm Config.pm#cd /root/.cpan (这个目录是在一开始以ROOT的账号初始化cpan时创建的)#rm -rf *然后重新配置cpan(此时相当于第一次使用cpan自动安装的功能)#perl -MCPAN -e shell#.... 方法二:转载 2013-07-18 18:00:39 · 4502 阅读 · 0 评论 -
使用HTTP::Server::Encryp模块快速搭建http server
1. 闲言少述,先上代码,搭建Http server#!/usr/bin perl############################################################################## \File# HTTPServer.pl# \Brief# Setting the http server# \A原创 2013-07-21 10:09:43 · 1743 阅读 · 0 评论 -
面向对象的Perl 之一
14.1 OOP范例14.1.1 回顾包与模块面向对象的编程(Object-Oriented Programming)OOP 的核心是其程序组织的方式。诸如C ++和Java 之类的面向对象编程语言都能把数据绑定到变量中,并称之为对象(object); 将数据和方法封装到一起得到的数据结构称为一个类(class); 若要创建一个Perl 模块,仍应使用关键字packag翻译 2013-08-13 15:56:31 · 1984 阅读 · 0 评论 -
面向对象的Perl 之二
14.2.8 多态性和动态绑定Webster 辞典把多态性(polymorphism)定义为:polymorphism: n. 1. the state or condition of being polymorphous。为了说的更清楚些,下面是另一个定义:具有多种形态或采取多种行为方式的能力... 同一个操作在不同的类中表现为不同的行为。多态性拥有很多种不同的描述方式,它早翻译 2013-08-13 15:59:08 · 1346 阅读 · 0 评论 -
perl pack和unpack的使用详解
perl pack和unpack的使用方法Pack 与unpack使用说明: pack可视为将一系列的片段的数值打包在一起,可用于对dev档案、socket、memory的读写,因为这些需要一块完整的memory,而且需要事先打包成特定格式;而unpack可以视为将将这些完整的 memory切割计算,取得我们所需要各部分的Variable。例子如下: pri转载 2013-09-02 17:59:50 · 11094 阅读 · 0 评论 -
linux上获取本机ip的各种perl写法
第一种办法,最简单的,调用 shell: $ip = `ifconfig eth0|grep -oE '([0-9]{1,3}\.?){4}'|head -n 1`;注:这里输入是固定的,所以简单的 [0-9]{1,3} 了,如果是在 web 程序等地方验证 ip,需要更严谨!或者 $ip = `ifconfig eth0|awk -F: '/inet add转载 2013-09-02 16:51:11 · 1257 阅读 · 0 评论 -
Perl函数pack/unpack解释
函数名pack调用语法formatstr = pack(packformat, list);解说把一个列表或数组以在实际机器存贮格式或C等编程语言使用的格式转化(包装)到一个简单变量中。参数packformat包含一个或多个格式字符,列表中每个元素对应一个,各格式字符间可用空格或tab隔开,因为pack忽略空格。 除了格式a、A和@外,重复使用一种格式多转载 2013-09-02 17:56:53 · 1452 阅读 · 0 评论 -
perl 邮件发送示例详解
一、使用 Mail::Sender模块先申请一个163的邮箱;#!/usr/bin/perluse warnings;use strict;use Mail::Sender;my $sender = new Mail::Sender{ smtp => 'smtp.163.com', from => 'your_mail@163.co原创 2013-09-25 17:51:58 · 2133 阅读 · 0 评论 -
Perl函数参数中传递数组和引用的使用
本文和大家重点讨论一下Perl函数参数中传递数组和引用的使用,今天看到这个问题可以通过传递参数引用来解决,所以打算写下来,希望可以帮到大家。Perl函数参数中传递数组和引用今天看到了在Perl函数参数中传递引用的一段文章,其中讲到了一个问题,自己以前还碰到过,不过最后是通过其他办法绕过去了。今天看到这个问题可以通过传递参数引用来解决,所以打算写下来,希望可以帮到大家。转载 2013-10-29 15:51:21 · 2178 阅读 · 0 评论 -
Perl ERROR "Failure to create message queue, No space left on device "
1. 查看系统信息 $ sysctl -a kernel.msgmnb = 16384 kernel.msgmni = 16 #too small kernel.msgmax = 8192 kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.shmmax = 33554432 2. 修改系统参原创 2013-11-12 22:50:51 · 1700 阅读 · 0 评论 -
Perl使用主机名发邮件
使用别的邮件系统有诸多限制,不如用linux系统本机的邮件功能; #!/usr/bin/perl### Test linux mail##use warnings;use strict;use Mail::Mailer;use Socket;my $mail_subject = "test mail";my @daily_mail_cont原创 2013-11-13 17:33:27 · 1178 阅读 · 0 评论 -
Perl自定义模块
1:模块的文件名: perl5以.pm结尾2:放置目录: 可以放在自定义目录(目录位置必须加入@INC) 或放在调用这个模块的文件的当前目录; 或放到perl5 pm的固定目录(/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi),这个因系统而异;3:模块文件格式: 以package p转载 2013-04-08 21:41:50 · 3565 阅读 · 0 评论 -
《Advandced Perl Programming》第七章、POE(1)
原文链接: http://blog.yikuyiku.com/?p=1259这一章,我们一起来看看被Mark-Jason Dominus称为“Perl5里最有意思的进化”的Perl Object Environment。POE有很多用途,列举一些如下:提供了一个堪比线程和IPC的多任务调度机制;简化了以协议为基础的网络服务器和客户端的开发;提供了一个状态机框架;把复杂程转载 2013-04-08 17:48:06 · 922 阅读 · 0 评论 -
详解Perl字符串比较和整数比较的区别
本文向大家介绍一下Perl字符串比较和整数比较.Perl语言中Perl字符串可分为单引号和双引号字符串,那么如何进行Perl字符串比较呢,请看本文详细介绍:本文和大家重点讨论一下Perl字符串比较和整数比较,算术运算符的比较有大于,小于,等于,不等于等关系,而Perl字符串比较也不例外,这里向大家详细介绍一下:一. 字符串比较操作符操作符 描述 lt转载 2013-02-17 21:44:41 · 4591 阅读 · 0 评论 -
畅谈Perl时间处理函数用法
本文重点讨论Perl时间处理函数的概念,Perl能在绝大多数操作系统运行,可以方便地向不同操作系统迁移,并且Perl借取了C、sed、awk、shellscripting以及很多其他程序语言的特性。一. Perl时间的表示函数1. 表示日期的方式多种多样:"18Jan1973";"18/01/1973";"01/18/1973";"Jan181973";原创 2013-02-18 14:39:15 · 1262 阅读 · 0 评论 -
Perl解析JSON数据精解
简介:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl,原创 2013-03-04 22:42:41 · 7818 阅读 · 0 评论 -
Perl中常见的特殊符号
Perl的特殊符号@ 数组 $x{} x名字前面是美元符号($),后面是花括号({}),则其为 hash 元素% 要引用整个 hash,使用百分号(“ )作为前缀。前面几页中使用的 hash 的名字为%family_name。$! 根据上下文内容返回错误号或者是系统产生的一些可读的信息;原创 2013-02-23 21:41:07 · 2507 阅读 · 0 评论 -
Perl 获取当前程序的绝对路径与勘误
前言 你写的脚本(或程序)的应用场景肯定有很多,如:本机登录用户在程序所在的目录下运行;本机登录用户在根目录下运行;或者是远程用户使用SSH调用。 而此时,你的程序涉及到一些文件的读/写操作,这时就需要以当前程序所在绝对路径为文件路径坐标基点--以定位读/写文件的所在,才能成功地读写文件。1. 错误方式之一use Cwd;my $cwd = getc原创 2013-02-23 21:42:10 · 2566 阅读 · 0 评论 -
Perl 获取当前程序的绝对路径与勘误
前言 你写的脚本(或程序)的应用场景肯定有很多,如:本机登录用户在程序所在的目录下运行;本机登录用户在根目录下运行;或者是远程用户使用SSH调用。 而此时,你的程序涉及到一些文件的读/写操作,这时就需要以当前程序所在绝对路径为文件路径坐标基点--以定位读/写文件的所在,才能成功地读写文件。1. 错误方式之一use Cwd;my $cwd = getc原创 2013-02-23 21:42:57 · 1167 阅读 · 0 评论 -
如何用Perl发送邮件
使用Perl 发送邮件有很多方式,随便可数出来的有:mail,sendmail,Mail::Mailer,MIME::Lite等等。这些方式都能实现邮件的发送,具体的就要看用在什么场合了。1. mail方式这个调用系统命令,算是最简单的方式了(我亲自测试可用)my $mail_title= "test_mail";my $mail_body = "ffm原创 2013-02-23 21:44:02 · 2669 阅读 · 0 评论 -
Wide character in print 报错
用perl写文本处理程序,或者写服务器端脚本的时候,常常会遇到“Wide character in print” 的警告或者错误。这是因为在程序中处理中文等宽字符时,perl不能识别要处理的内容。首先要知道perl只能处理两种编码: ascii码; utf-8码;ascii码是很少的,像中文、日文、韩文等字符要想能被perl处理,只能用 utf-8编码方式。转载 2013-02-27 14:48:11 · 6402 阅读 · 0 评论 -
Perl高精度计时器
use strict ;use Time::HiRes qw(gettimeofday) ;sub Test{ # sec: seconds # usec: microsecond my ($start_sec, $start_usec) = gettimeofday() ; #======================#转载 2013-03-12 14:12:17 · 2257 阅读 · 0 评论 -
perl实现超时机制综述
一、ALARM方式示例程序:#!/usr/bin/perl$timeout = 2 ;while(1){ eval { local $SIG{ALRM} = sub{print "sorry,time out.please try again\n"} ; alarm $timeout ; #启动定时器 # 实际操作 pr原创 2013-03-12 14:53:27 · 3543 阅读 · 0 评论 -
Perl基础教程:多线程编程
Tutorial on threads in PerlPerl的线程教程一、DESCRIPTIONThis tutorial describes the use of Perl interpreter threads (sometimes referred to as ithreads) that was first introduced in Perl 5.6.0.翻译 2013-03-28 16:16:07 · 4350 阅读 · 0 评论 -
Perl基础教程:代码调试
perl调试教程一、DESCRIPTIONA (very) lightweight introduction in the use of the perl debugger, and a pointer to existing, deeper sources of information on the subject of debugging perl programs.The翻译 2013-03-31 22:53:14 · 2041 阅读 · 0 评论 -
Perl基础教程:复杂数据结构
Perl Data Structures CookbookPerl数据结构百科一、描述The single feature most sorely lacking in the Perl programming language prior to its 5.0 release was complex data structures. Even without direct l翻译 2013-04-02 12:24:39 · 2667 阅读 · 0 评论 -
Perl基础教程: 正则表达式
Perl正则表达式教程简介This page provides a basic tutorial on understanding, creating and using regular expressionsin Perl. It serves as a complement to the reference page on regular expressions perlre.翻译 2013-04-06 18:06:38 · 3987 阅读 · 0 评论 -
Perl线程综述
简介: 本文首先概述了线程的概念和意义,接着回顾了 Perl 语言中对线程支持的演化历史,然后通过一系列示例重点介绍了 Perl 中线程的实现,数据的共享以及线程间的同步,最后归纳并总结了全文主要内容。一、线程概述线程是一个单一的执行流程,它是所有程序执行过程中最小的控制单位,即能被 CPU 所调度的最小任务单元。线程与进程之间既有联系,又完全不同。简单地说,一转载 2013-03-24 20:23:57 · 1869 阅读 · 0 评论 -
Perl实现的简单单机聊天服务器
1. Problem如何管理多个输入流The next input to your program could be coming from any number of filehandles, but you don't know which. You've tried using select( ), but the need to then do unbuffered I翻译 2013-03-26 17:57:02 · 1073 阅读 · 0 评论 -
《Advandced Perl Programming》第七章、POE(2)
>第七章、POE(2)原文链接: http://blog.yikuyiku.com/?p=13621. WheelsWheels就是POE的I/O系统的动力之源。wheel帮助我们和不断发生事件的外部世界连接起来。你暂时可以想象wheel是POE里的文件句柄,但是wheel还不仅仅是个文件句柄。最容易理解的一个wheel是POE::Wheel::Follow转载 2013-04-08 17:47:04 · 981 阅读 · 0 评论 -
Perl 模块安装方式一览
Perl的优势之一是其有庞大的CPAN库,安装这些库有很多方法.一、通过专用的模块安装模块来安装模块优点是可以解决依赖问题,有三个模块,分别是cpan,cpanp,cpanm.1. CPAN模块。cpan是一个重量级选手。RedHat下安装cpan模块: yum install perl-CPANcpan可以通过两个方式安装模块:直接安装# cpan原创 2013-12-16 20:26:32 · 2789 阅读 · 0 评论