perl 笔记

push @arr_1, ['domain', 'rr_type', 'rr'],['2','22'];

 my $ref = \@arr_1;

 for my $key (@$ref)

 {

#print $key->[1];

 print @{$key}[0];

 }

 

 

my %hash = (
 'A'=>'1A',
 'B'=>'2B',
 'C'=>'3C'
 );
 my $ref_hash = \%hash;
print @{$ref_hash}{'A','B'};

 

hash解引用,两种方法:

my %hash = (
     26 'A'=>'1A',
     27 'B'=>'2B',
     28 'C'=>'3C'
     29 );
     30 my $ref_hash = \%hash;
     32 %{$ref_hash}->{whois} = 'whoishash';
     33 $ref_hash->{twoo} = 'twoo';


1.整个列表都封装在圆括弧里,而不是花括弧里,因为你是在给一个列表赋值而不是给引用赋值。如


果你想要一个指向数组的引用,那么你要使用方括弧.
2.在每一对相邻的花括弧或方括弧之间有一个隐含的 ->.
3.push @arr,[ @arr_1]; 构建二维数组。
push @arr, @arr_1; 仍然是一维数组。
4.高维数组的引用:
my @arr;
my $ref_arr = \@arr;
print "ref: @{$ref_arr}"#输出每一行的地址。
print "ref: @{$ref_arr->[2]}"#输出第三行的地址。
print "ref: @{$ref_arr->[2]}[3]"#输出第三行的第四个元素。
花括号表示引用。
5.数组引用形式:
 22  my $arr_ref =
  [
         ["fred","cook"],
         ["gro","ad","fk"],
         ["1","2","3","4"],
         [ ["a1","a2","a3"],["b1","b2"] ]
  ];
6.$#表示数组中行数-1。

7. $#xxx: 显示数组中行数-1

$#$xx: 标量, 都返回-1.

    1 #!/usr/bin/perl -w
      2 use Data::Dumper;
      3 my @conf =
      4 (
      5     ['C11','C12','C13'],
      6     ['C21','C22'],
      7     ['C31','C32','C33'],
      8     ['c41']
      9 );
     10 my $ref_conf = \@conf;
     11 print "test:  $#$ref_conf\n";
     12 print "test:  $#$conf\n";
     13 print "t3: $conf\n";
     14 print "t4: $ref_conf\n";
     15 my @t = ('a');
     16 print "t: $#$t\n";

 

map的使用, 例子:

1 #!/usr/bin/perl -w
      2 use Data::Dumper;
      3 my @conf =
      4 (
      5     ['C11','C12','C13'],
      6     ['C21','C22'],
      7     ['C31','C32','C33'],
      8     ['c41']
      9 );
     10
     11 my $ref = \@conf;
     12 my @ldns = map { [ $_,"#" ] ,"@@"}@$ref;
     13 print Dumper(@ldns);
     14 print $ldns[1];

 map前可以加上sort操作:

my @ldns = sort{$a->[0]<=>$b->[0]} map { [$_->[0],"#"] }@$ref;

map中还可以插入函数.

如:

my @arr = map {$_->[0] = 'wori';$_}@$ref;

 

向函数传递键值对

 14 fn({key=>155});       #输出155                                                                        
 15
 16 sub fn
 17 {
 18     my ($a) = @_;
 19     print $a->{key};
 20 }

 

这种语法也是可以的:

my $tmp = "a,b,c,d";
my ($a,$b) = (split ',',$tmp)[0,2];

 

 

perl下的stat函数和shell下的stat命令的功能基本一致,也是取得文件的各类具体信息:


stat()函数返回一个数组,下面是数组各个元素的含义:

0     dev      设备号 驱动器号(C:通常是2,D:通常是3,等等)
1     ino      索引节号 总是0
2     mode     文件的方式 无
3     nlink    链接号 通常为0;Windows NT;文件系统允许链接
4     uid      文件所有者的用户ID(UID)总是0
5     gid      文件所有者的组ID(GID)总是0
6     rdev     特殊文件信息 驱动器号(重复)
7     size     文件大小(以字节计)文件大小(以字节计)
8     atime    上次访问的时间 上次访问的时间
9     mtime    上次修改的时间 上次修改的时间
10    ctime    Inode修改时间 文件的创建时间
11    blksz    磁盘块的大小 总是0
12    blocks   文件中的块的数量 总是0


例子:
获取某个文件的创建时间和最后一次修改时间,

my @array = stat("test.html");
   print "$array[10]\n";
   print "$array[8]\n";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值