perl 基础学习(1)

1.变量(词法变量,包变量)
词法变量:
标量:用$开头,字符串和数字等,e.g $count = 0;
数组(有序):用@开头,一列数值,用编号做键字,e.g @values = (1,2,3,4);
散列(无序,Hash,又称关联数组):用%开头,键值对,用字串做键字,e.g %longday=("Sun"=>"Sunday","Mon"=>"Monday","Fri"=>“Friday”);    取值:$longday{"Mon"}
子过程:用&开头,一段可以调用的Perl代码,e.g &how
类型团:用*开头,e.g *struck
常量:使用 constant 编译指示允许定义常量

引用
创建:使用反斜杠操作符可以创建引用, \相当于C中的&
     [,,,]和{,,,}创建一个指向数组和Hash的引用,它们创建一个自己内容的副本并返回指向它的引用,所以于\不一样。  e.g @array = [1,2,3,4];  @copyhasref = {%hash};
访问:$相当于 C 中的*,用于访问引用指向的值。

可以通过ref()函数返回引用的类型。
e.g: $rl = \@l; #指向已存数组的引用
     $rl = [1,2,3]; #指向匿名数组的引用
     push(@$rl,"a"); #解引用
     print $rl->[3]; #$rl 指向的数组的第四个元素

变量声明:如果列出多个变量,要放在()里,如my($a,$b,$c)
my 创建私有变量(局部变量)                   
out 进行有选择的访问全局变量(词法范围全局声明)                
local 给全局变量提供临时的值(动态范围变量)
my $i = 10;
[
    my $i = 99;
    #这里i的值是99
}     
#这里i的值是10

out $name = "x"
{
    out $name = "y"
    #这里name值为y
}
#这里name值为y

local $name = "x"
{
    out $name = "y"
    #这里name值为y
}
#这里name值为x

包变量:属于某个包的变量可以在任何地方使用。在包内部使用包变量不需要加包名,在包外部使用包变量需要加包名。
声明:package Logger;
变量声明:use strict;
在 perl 中,一个对象类只不过是一个包,而一个对象实例只不过是一个引用。

继承:声明一个类的继承关系是通过把父类名称加到该类的@ISA 包变量中实现。例如,类PerlGuru 声明它继承 PerlHacker 如下:
package PerlGuru;
@ISA = ("PerlHacker");


2.操作符

算数操作符:  +  -  *  /  **(乘幂) %(取余)

字符操作符:  连接操作符” .”和复制操作符”x”  e.g @array = (1,2,3,4,5) x 2; # @array =(1,2,3,4,5,1,2,3,4,5);

比较操作符:  <  <=  ==  !=  >  >=  <=>(比较两个值。当两个值相等时返回 0,当第一个值大时返回1,第二个值大时返回 –1。)  

逻辑操作符:  !  ||  &&

位操作符:    &(位与)  |(位或)  ~(位非)  ^(位异或)  <<(左移)  >>(右移)

引用操作符:  \   它创建并返回一个指向它随后的各种类型的值、变量或子例程的引用。由于它并不会拷贝原值,因此改变引用指向的值会改变原始值。
e.g $message = ”hello ref”;
    $messageref = \$message;
    $$messageref = ”hello world”;
    print $message;
    #打印 hello world

箭头操作符: ->   箭头操作符有两种用法:第一种用法是访问引用中的数据元素。e.g:
$array_element = $arrayref -> [1];
$hash_element = $hashref -> {$key};
这种方法的一个特例是使用多维数组或者 hash 的 hash,其中隐含使用了箭头操作符,以下两种方法是等价的:
$element = $pixel[$x][$y][$z];     和     $element = $pixel[$x] -> [$y] -> [$z];
第二种用法是在对象中使用,通过它来调用一个对象(或实例)的方法:
$object ->method(@arguments);

范围操作符:  ..   范围操作符可以在列表上下文或在标量上下文中使用。它在这两种方式下工作模式不一样。在列表上下文中,范围操作符返回一个列表,该列表的第一个元素是左边的操作数,以后的元素是依次递增这个操作数,直到右边的元素为止。如果左边等于右边,则返回一个单元素的列表;如果左边的操作数更大,则返回空列表。
e.g:  1..5 返回列表: (1,2,3,4,5)     ’a’..’e’返回列表:(‘a’,’b’,’c’,’d’,’e’)。

三元操作符: ? :  可以看成是一个 if 语句。例如下面的操作: <condition>?<true-result>:<false-result>;  其等价的表达形式是:
if <condition> then return <true-result> else return <false-result>;
e.g  取得最大值:  $max_value=($a > $b ? $a : $b);

尖角操作符: <>  当打开一个用于接受输入的文件句柄时,可以用于读入一行
获取用户输入:
print STDOUT "Enter a number:";
$num = <STDIN>;
print STDOUT "the num is $num";

文件测试操作符; -e $a(存在)  -r $a(可读)   -w(可写)   -d(目录)   -f(文件)

正则表达式操作符: =~ (联接字符串和正则表达式匹配。如果正则表达式匹配成功,整个表达式返回 true ,否则返回 false。) 和 !~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值