Perl手记
前言:自己理解的一个术语:
Q: 什么是变量?
A: 变化的量,称之为变量.比如"$DIR",这个变量,其的值可以是3,4或者是/root.其值是可以变化的.$DIR就像一个箱子,其里面可以放苹果,也可以放橘子,当然也可以放电脑.o(∩_∩)o....里面放什么东西不重要,其$DIR是一个指向这个东西的指针.
$DIR="/root";
print "$DIR";
Q: 什么是数组?
A: 说通俗点,就是有很多数据放置在一起.还拿箱子来说明:变量的箱子只可以放一个东西.比如说,要么放苹果,要么放橘子.不能同时放2样东西.但是数组的箱子就可以既放苹果,又放橘子.放很多种东西.
@DIR=qw|w e r|;
print $DIR[0];
Q: 什么是散列?
A: 拿一个贴标签的例子来说:比如说,一个箱子中有很多种物品,有苹果,橘子,香蕉,梨.然后写4个标签,然后让抽奖,抽奖的人抽到苹果的标签,就给这个抽奖的人一个苹果.
%DIR=(config => "/root/config.conf",
dir=> "/root",
)
print $DIR{config};
#!/usr/bin/perl -w
第一句是告诉程序,此文件是一个perl script.这个和shell script类似.
use vars qw($DIR);
声明一个$DIR变量,这里可以声明很多变量.例如:use vars qw($DIR $EXT $Mail),程序中的use strict的作用就是强制程序在使用变量前,先声明,否则报错.
BEGIN{} 的作用是向@INC数组中,添加模块路径.其和use libs 'path',的作用一样
@INC是一个数组,其里面包括了Perl程序在寻找libs库的所有路径
if (){} if语句,当()里面的语句为真时,就执行{}里面的代码
$ENV{SCRIPT_FILENAME} 这个是得到cgi脚本的绝对路径.例如:/var/www/extsuite/cgi/index.cgi
=~ 这个是模式匹配操作符.
$ENV{SCRIPT_FILENAME} =~ m!(.*/)cgi! 这句话的意思是$ENV{SCRIPT_FILENAME}的值来和(.*/)cgi来做匹配.
在这里得提一下元字符.在这里的"."是一个元字符,是代表任何一个字符."*"是一个元字符,代表0个或者0个以上.合起来(.*/)就是任何字符(除了换行符). 不错,支持!!!! 1) use vars qw($var)
use 和 require有异曲同工之处,都是加载模块.模块名字不用加pm
use是编译的时候引入的,require是在运行时引入的
use vars 是声明变量
2) BEGIN {},向@INC数组中增加模块路径.
3) unshift @INC,'/path'; 增加perl寻找模块的路径
4) print "Content-type:text/html\n\n";在浏览器上使用,告知此页面是一个网页
5) if (){}; if 条件语句
if (){} else {};
if (){} elsf (){} else {};
6) eval{} 捕获错误信息,将错误信息保存在$@变量中
7) my 声明变量,作用域控制在一个block中
8) package 声明包 ::是目录间隔符,类似linux中的/
9) @ISA 当在@INC中找不到lib库的时候,就在@ISA路径中寻找
10) sub {} 方法定义
11) @_是参数数组
12) 构造函数主要是用来初始化一些东西,分为静态和动态两种.
页:
[1]