Perl中 qw 是 “quoted Word” 或是 “quoted by whitespace”的简写 eg: @strict_pragma = qw ( a b c);…
grep函数 (如果你是个的新手,你可以先跳过下面的两段,直接到 Grep vs.loops 样例这一部分,放心,在后面你还会遇到它) <pre>grep BLOCK LISTgrep EXPR, LIST</pre>grep 函数会用 LIST 中的元素对 BLOCK 或 EXPR 求值,而且会把局部变量 $_ 设置为当前所用的 LIST 中的元素.BLOCK 块是一个或多个由花括号分隔开的Perl 语句,而 List 则是一有序列表.EXPR 是一个或多个变量,操作符,字符,函…
#!/usr/bin/perl -w @array = qw(a b c d); foreach (@array) { print $_," "; } 例子的作用就是定义一个数组并把其中的元素打印出来,这里需要注意的是foreach循环部分,foreach循环的标准格式应该是: foreach $element (@array){ ...... } 其中数组@array将其中的元素依次赋值给$element,但是在上面那个程序中,我并没有这样做,在程序中,我就使用到了perl中内置的一…
perl中的上下文 在perl中,很多地方会切换上下文.所谓上下文,它的重点在于同一个表达式出现在不同地方,得到的结果不同.换句话说,同一个表达式,它表达的值不是固定的.这就像是同一个单词,在不同语境下的意思不同. 例如,运算操作符决定数值是一个数字还是一个字符串. 2 * 3 2 x 3 2 * 3中的2和3都是数值,因为操作符*是算术运算符,它要求两边都是数字.而2 x 3中的2是字符串,3是数字,因为操作符x是这样要求的. 还有,对数组@arr的两种操作: @arr=qw{perl,pyt…
perl中的foreach结构  首先语法 foreach $rock(qw /bedrock slate lava/){        $rock="\t$rock";        $rock .="\n"; }  Foreach 从列表(数组)的第一个元素一直循环执行到最后一个元素,一次迭代一个.控制变量(本例中为$rock)每一次迭代从列表中取出一个新值.第一次为 “ bedrock” ,第三次为 “ lava” .控制变量不是这些列表元素中的一个拷贝而是这…
@EXPORT Perl通过继承,可以使子类可以像使用本地方法一样使用其基类的方法. 一个类如果想把自己的方法(变量)暴露给别人使用(比如一些公共基础类的的通用方法或变量),还可将直接将方法(变量)添加到内置数组@EXPORT中即可.示例如下: [xywang@mnsdev13:~/]$ cat Fred.pm package Fred; use Exporter 'import'; @EXPORT = qw(flintstone $var); sub flintstone{ return 99…
转自:http://c20031776.blog.163.com/blog/static/684716252013624383887/ Perl 程序中,正则表达式有三种存在形式 分别是 (1 模式匹配:m/<regexp>/     #平时我们简写 /<regexp>/ ,略去m, 三个参数 /i不区分大小写   /s匹配任何字符    /x添加空格  /o 不重复编译正则表达示 (2 模式替换:s/<pattern>/<replacement>/ /g …
在Perl中使用s///进行替换操作,与m//进行查找操作类似. s/with (\w+)/against $1's team/;      ##第一个双斜线,表示被替代的文本.第二个双斜线,表示将替代为的文本. s///可以有不同的定界符,但是必须保证两对字符.一对包住模式,一对包住替换字符串. s#^https://#http://#;                    ##使用#号,分别包住模式和替换字符串. s{}();                                …
在Perl中,匹配的定界符如果是双斜线//,可以直接使用双斜线完成匹配操作. 如果特定条件下需要改变定界符,如改为{},[]等.需要加入m,m{},m[]等. m%^http://% 默认的模式匹配对象是自动化变量$_,如果要指定匹配对象,可以使用绑定操作符=~. my $some_other = "I have a Dream"; if($some_other =~ /\brub/);    ##用右侧的模式对左侧的对象进行匹配. 模式匹配修饰符: /i表示大小写无关的匹配. /s表…
我们在linux常常用到一个程序需要加入参数,现在了解一下 perl 中的有关控制参数的模块 Getopt::Long ,比直接使用 @ARGV 的数组强大多了.我想大家知道在 Linux 中有的参数有二种形式. 长参数  –help 短参数   -h 也就是-和–的分别.–表示完整参数.-表示简化参数.在 Perl 的这个模块中也支持这二种方法.这要介绍的二 Getopt 其实有二个模块,一个叫 Getopt::Long 一个叫 Getopt::Std.下面就只介绍 Getopt::Long…
前几天用到了Perl语言,主要看了一下Perl中的正则表达式,在各种网页语言中,正则表达式在处理字符串的时候十分有用,所以这里就简单说一下在Perl中正则表达式的应用. 先上代码 #!/usr/bin/perl -w #use utf8; #use encoding "gb2312"; open(DATA,"<test2.txt") or die "read error"; open(OUT,">outfile.txt&qu…
perl中尖括号运算符的用途分享,这里简单介绍下,方便需要的朋友 perl中<>运算符可以有如下的用途: 1)如果尖括号中间是文件句柄,尖括号运算符允许你读取文件句柄,比如<STDIN>. 2) 如果尖括号中间是搜索模式,尖括号运算符能返回与该模式匹配的文件列表,这称为一个glob,比如< *.bat>. 3)一组尖括号运算符如果中间没有任何东西,那么它可以读取命令行上所有文件的内容:如果没有给出文件名,则可以读取标准输出. 请看下面这段代码: 代码如下: while(…
#Perl中检测标准输入使用的字符集 sub locale_encode{ my $lang = $ENV{'LANG'}; my $dot_pos = rindex($lang, '.'); my $encode = $dot_pos < 0 ?$lang : substr($lang, $dot_pos+1); $encode = $encode eq ''? 'utf8': $encode; } #使用方法 # print locale_encode; #…
同其它大多数编程语言一样.Perl中的单行凝视也是#开头.比如: #print "Hello,World!"; 但多行凝视.不同的语言有不同的凝视方式,比方说: Java,C/C++: /*  *凝视若干行  *凝视若干行  *凝视若干行 */ Python:   """  用三个双引號,多行凝视  用三个双引號,多行凝视  用三个双引號,多行凝视 """ '''  用三个单引號.多行凝视  用三个单引號,多行凝视  用三个单…
来源: http://www.jb51.net/article/35528.htm perl中our的用法require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败.所以它的作用就是保证模块调用环境的 Perl 版本. our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量. 不过,经过 our 声明的变量,它会变得像一个词法变量一样,其实这也是 our 存在的目的:用来欺骗 strict pragma,使 str…
在perl中,调用系统命令有两种形势,`cmd` 和system"cmd",他们主要的区别是`cmd`会获取返回结果,而system"cmd"会直接将结果输出到屏幕上,针对这个区别有以下两种用法: 1,当需要获取运行结果的时候,如获取当前目录,就应该写成 chomp($pwd = `pwd`);如果写成 $pwd = system"pwd",则$pwd值为0.(这里用到chomp说明`cmd`的结果是包含换行符的,使用时需要注意). 2,当需要让…
hash类型 hash类型也称为字典.关联数组.映射(map)等等,其实它们都是同一种东西:键值对.每一个Key对应一个Value. hash会将key/value散列后,按序放进hash桶.散列后的顺序和存放数据的顺序无关 hash类型的key只能是字符串,value可以是字符串.数值.undef或其它类型的标量 hash的key必须唯一,不能重复 perl中使用符号%表示hash类型,如%myhash.使用$hashname{index}访问hash中的元素 perl中可以单独对每一个has…
打开管道文件   Linux提供了管道机制,可以方便应用程序之间的数据传递.在Perl中,扣开和使用管道可采用如下形式的open函数:   open(Filehandle,”丨 CMD”);   其中,CMD为数据接收方应用程序.比如,可以用管道的方式,向邮件程序发送信息,然后邮件程序会把收到的信息作为邮件发送出去,示例如下:   open( OutFile,”丨 mail sb@mail.com”):   prini (OUtFile, "Pipe send mail exampel.\n”)…
Perl中的哈希数据结构.相比较于数组,这种数据结构对于数据查找和统计更加方便. 一个特殊的哈希,%ENV,表示当前terminal下,通过setenv设置的variable的键值. 键:环境变量名,,,,值:环境变量值. 哈希是一种数据结构,由一对对的键(keys)--值(values)对来组成. 这些键和值都是任意的标量,但键总会被转换成字符串而且必须是唯一的字符串. 访问哈希元素,    $hash{$some_key}    ##和访问数组的做法类似,只是使用了花括号{}而非方括号[].…
Perl中读取标准输入:<STDIN> foreach (<STDIN>)  { print "I saw $_";} 钻石操作符<>:它的参数来源于@ARGV数组. 先检查@ARGV数组,如果为空,则从标准输入流输入.@ARGV的值可以来自命令行,也可以自己赋值. ./program  fred  barney betty     #@ARGV的值便是命令行后的三个文件. while (<>)   {  chomp;   print &…
在perl 中,通过代码动态的给哈希赋值,是最常见的应用场景,但是有些情况下,我们事先知道一些信息,当需要把这些信息存放进一个哈希的时候,直接给哈希赋值就好: 哈希的key不用说,就是一个字符串,关键是value, 大概有下面3种: 1)一个值 就是一个普通的一维哈希,直接赋值即可 代码示例: my %hash = ( , , ); print qq{$hash{a}\n}; 2)一个列表 这种情况下直接把值写成一个列表是不行的,在perl中,哈希的值也是一个标量,所以应该用一个列表的引用 代码…
我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是–help,另一种是-h.也就是-和–的分别.–表示完整参数.-表示简化参数 我们在linux常常用到一个程序需要加入参数,现在了解一下 perl 中的有关控制参数的模块 Getopt::Long ,比直接使用 @ARGV 的数组强大多了.我想大家知道在 Linux 中有的参数有二种形式. •长参数  –help •短参数   -h 也就是-和–的分别.–…
出处 C#实现在Sql Server中存储和读取Word文件 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABLE CONTRACTS ( ID VARCHAR (50), CONTRACT_FILE IMAGE ); 要将Word文件存储到数据库的CONTRACT_FILE字段中,需要将文件转换为byte数组,具体代码如下: /// 将文件转换为byte数组 /// <summary> /// 将文件转换…
办公软件指可以进行文字处理.表格制作.幻灯片制作.图形图像处理.简单数据库的处理等方面工作的软件.当然啦,这也包括了word.Excel以及PPT等.现在我们就一起来学习一下:怎样在ado.net中存取excel和word呢? 今天我们的主角是excel以及word这两种办公软件吗?那么大家都熟悉这两者吗?在教程开始之前,小编先简单的介绍一下吧.Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理.统计分析和辅助决策操作,广泛地应用于管理.统计财经.金融等众多领域.Micr…
在Perl中采用open进行管道操作 http://blog.sina.com.cn/s/blog_4840fe2a0100b8na.html perl exec管道和子进程 http://blog.csdn.net/zzz_781111/article/details/7564247…
Perl中文件读取操作 http://blog.csdn.net/yangxuan12580/article/details/51506216…
哈希和数组是Perl中较为常用的结构,本文则重点讨论数组和哈希的一些基本用法,供广大喜爱Perl的同学们交流学习. 哈希 Perl中的哈希表类似于Python中的字典结构,由(键=>值)对构成,以"%"开头: 定义:%hash = ('a'=>1,'b'=>2,'c'=>3);或 %hash = ('a',1,'b',2,'c',3); 访问:$hash{'a'}; #直接用花括号访问 插入元素:$hash{'d'} = 4; #('a'=>1,'b'=&…
本文和大家重点讨论一下Perl foreach命令的用法,Perl foreach循环中控制变量的值会被Perl自动保存和恢复.当循环进行时,是没有办法改变其值的.循环结束时,变量的值会回到循环开始前,如果没有值则为undef. Perl foreach用法 Perl foreach从列表(数组)的第一个元素一直循环执行到最后一个元素,一次迭代一个.控制变量(本例中为$rock)每一次迭代从列表中取出一个新值.第一次为“bedrock”,第三次为“lava”.控制变量不是这些列表元素中的一个拷贝…
Perl 中的引用,为什么要使用引用? 对于熟悉C语言的开发人员来说, 指针这个概念一定不陌生. Perl 的引用就是指针,能够指向变量.数组.哈希表甚至子程序. Perl5中的两种Perl引用类型为硬Perl引用和符号Perl引用.符号Perl引用含有变量的名字,它对执行时创建变量名并定位非常实用,基本上,符号Perl引用就象文件名称或UNIX系统中的软链接.而硬Perl引用则象文件系统中的硬链接. Perl4仅仅同意符号Perl引用,给使用造成一些困难.比如,仅仅同意通过名字对包的符号名哈希…
在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编码: Ascii(octets)和utf8(string). utf8 flag在perl内部, 字符串结构由两部分组成: 数据和utf8 flag. 比如字符串"中国"在perl内部的存储是这样:utf8 flag 数据On 中国假如utf8 flag是On的话, perl就会把中国当成…