《Perl语言入门》第三章 列表和数组

本文详细介绍了Perl脚本中数组与标量的区别、如何使用数组元素和最后一个元素的索引,以及如何进行数组的赋值、删除、插入、排序等操作。此外,还探讨了标量上下文与列表上下文的概念,并提供了数组操作的实例和注意事项。
1.数组名字(本例中:fred)和标量是属于完全不同的命名空间(namespace)。同一程序也可以同时包含叫做$fred 的标量   变量。如:能够使用标量变量(如$fred)的地方     使用数组元素(如$fred[2])。
2.最后一个元素的索引为$#rocks。(最后一个元素的索引值要比其实际包含的元素个数少一)。
  负数索引值是-1(最后一个元素)。
   $rocks[$#rocks] = ‘hard rock’;
       $rocks[-1] = ‘hard rock’;
3.qw简写
  qw(fred barney betty wilma dino )      ==      (“fred”, “barney”, “betty”, “wilma”, “dino”)
  qw{
/usr/dict/words
/home/rootbeer/.ispell_english
   }
  qw!Yahoo\! Google excite lycos ! #其中一个元素为:字符串yahoo!
4.列表赋值
  ($fred, $barney, $dino) = (“flintstone”, “rubble”, undef);
    ($fred, $barney) = ($barney, $fred) #交换两个变量
   在数组名前加@(后没有中括号)来引用整个数组   ==    all of the
     @rocks = qw / bedrock slate lava /;
5.pop和push操作
   pop 操作将数组的最后一个元素取出并返回
       @array = 5..9;
       $fred = pop(@array);         #$fred 得到9,@array 现在为(5,6,7,8)
       $barney = pop @array;       #$barney gets 8, @array 现在为(5,6,7)
       pop @array;                      #@array 现在为(5,6)(7 被丢弃了)

     push,它可以将一个元素(或者一列元素)加在数组的末尾
        push(@array,0);              #@array 现在为(5,6,0)
        push @array,8;               #@array 现在为(5,6,0,8)
        push @array,1..10;     #@array 现在多了10 个元素
        @others =qw/9 0 2 1 0 /;
        push @array,@others;     #@array 现在又多了5 个元素(共有19 个)
6.unshift 和 shift 对一个数组的开头进行操作(数组的左端有最小下标的元素)
      @array = qw# dino fred barney #;
      $m = shift (@array); #$m 得到“dino”, @array 现在为(“fred”, “barney”
      unshift(@array,5); #@array 现在为(5)
      unshift @array,4; #@array 现在为(4,5)
7.将数组插入字符串
     插入的数组元素的第一个元素前面和最后一个元素后面不会插入空格,如果需要可以自己加入
     @rocks = qw{ flintstone slate rubble };

     print “quartz @rocks limestone\n”; #输出为5 种rocks 由空格分开

     在写email时:
       $email =“fred\@bedrock.edu”; #正确
       $email =‘fred@bedrock.edu’; #另一种方法
8.foreach控制结构
foreach $rock (qw/ bedrock slate lava /){
print “One rock is $rock.\n”; #打印出3 种rocks
}

  默认变量:$_
foreach(1..10){ #使用默认的变量$_
print “I can count to $_!\n”;
}

$_ =“Yabba dabba doo\n”;
print;     #打印出默认变量$_。

9.reverse(逆转)操作将输入的一串列表(可能是数组)按相反的顺序返回。
@barney = reverse (@fred); #得到10,9,8,7,6

@wilma = reverse 6 ..10; #同上,没有使用额外的数组

10.sort 操作将输入的一串列表(可能是数组)根据内部的字符顺序进行排序。  @sorted = sort(@rocks);
11.分清标量contex和列表context
    标量context                                                                列表context
  $fred = something;                                    @fred = something;                          reverse something                
  $fred[3] = something;                                ($fred, $barney) = something;            print something
  123 + something;                                       ($fred) = something;
  something + 654                                         push @fred, something;
  if(something){… }                                     foreach $fred(something)
  $fred[something] = something;                    sort something
12.清空数组的方法
    @wilma = undef; #OOPS!得到一个元素的列表(undef),不同于下面的例子
    @betty = (); #将数组置空的正确方法
13.强制转换为标量Context——用函数scalar
      @rocks = qw(talc quartz jade obsidian);
      print “I have ”, scalar @rocks, “rocks!\n”; #正确,输出其数字
14.<STDIN>在列表Context中
      @lines = <STDIN>; #将输入读入列表context 中
      换行符:在unix系统中为CTRL +D          在windows系统中为CTRL +Z
       chomp (@lines = <STDIN>); #读入所有的行,不包括换行符
乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值