Perl基本语法实例,变量,数组,函数,if, for, while
发布时间:2020-12-15 23:56:02 所属栏目:大数据 来源:网络整理
导读:#!/usr/bin/perl -w########################################################################## File Name: test.pl# Author: kevin xiang# Created Time: 2014年07月04日 星期五 13时53分43秒#########################################################
#!/usr/bin/perl -w ######################################################################### # File Name: test.pl # Author: kevin xiang # Created Time: 2014年07月04日 星期五 13时53分43秒 ######################################################################### print "hello word n"; print "---- 变量定义用$ 符号------n"; $a=`echo xxxx`; print "$a"; $b='aaaa'.'hhhh'; $c="bbbb"; $d="$b"."$c"; $d.='eeee'; print "$dn"; print "d: $dn"; $bl1 = 1>=0; $bl2 = 1>=3; print $bl1; print $bl2; print "---- if elsif else 条件判断语句 ----n"; $if1=2; if($if1 == 1){ print "passn"; }elsif($if1 == 2){ print "==2n"; }else{ print "failn"; } #chomp($in1 = <STDIN>); #print "your input: $in1n"; #if(defined($in2)){ # print "1"; #}else{ # print "2"; #} print " ------- @ 符号来定义数组 ------ n"; @array = (1,2,3,"4")x4; print "$array[1]n"; print "$#arrayn"; print "$array[-1] n"; $xtest="123"x5; print "$xtestn"; print "pop push 针对数组的末尾操作 n"; print "pop 取出最后一个,返回数组剩下的, push将一个元素添加到末尾 n"; print "shift unshift 为 pop push的反向操作,针对数组头n"; @array2 = 5..10; print "$#array2 ---- $array2[-1] n"; pop @array2; print "$#array2 ---- $array2[-1] n"; pop(@array2); print "$#array2 ---- $array2[-1] n"; print "---------- array3 ----------n"; @array3 = 1..3; print "$#array3 ---- $array3[-1] n"; push @array3,9; print "$#array3 ---- $array3[-1] n"; push @array3,10...12; print "$#array3 ---- $array3[-1] n"; print "---------- array4 ----------n"; @array4 = 1..3; print "@array4 ---- $array4[0] n"; shift @array4; print "@array4 ---- $array4[0] n"; unshift @array4,99; print "@array4 ---- $array4[0] n"; unshift(@array4,'98'); print "@array4 ---- $array4[0] n"; print "---------- array5 ----------n"; @array5 = qw(eating rocks is wrong); $array5 = "right"; print "@array5 ... $array5 n"; print "this is $array5[3] n"; print "this is ${array5}[3]n"; print "this is $array5"."[3]n"; print "this is $array5[3] n"; print "--------- for --------------n"; for($i=0; $i<10; $i++){ print "for: $in"; } #实际for和foreach是一样的 #中断循环对比C 的break和continue,Perl分别对应的是 last 和 next #Perl中还特有 redo,调到当前循环的顶端,不进行条件判断就再次执行本次循环 #next会进入下一次循环,redo会继续执行本次循环 print "--------- foreach ----------n"; @rocks = qw(bedrock slate lava); print "before rocks: n @rocks n"; foreach $rock (@rocks){ #如果有 redo 应该跳到的位置 $rock = "t$rock"; $rock .= "n"; print "new rock: $rock n"; } print "after rocks: n @rocks n"; print "--------- reverse 翻转 ----------n"; @reverse1 = reverse 6..9; print "@reverse1 n"; @reverse2 = reverse @reverse1; print "@reverse2n"; print "--------- sort 排序 -------------n"; @sort1 = qw(aaa ccc eee bbb ddd); print "@sort1n"; @sort1 = sort(@sort1); print "@sort1n"; print "--------- context -----------n"; print "变量和列表会根据上下文给出不同的值n"; print 1+@sort1."n"; @rocks = qw(xxx aaa ccc); print "I have",@rocks,"rocks!n"; #强制转换为标量 print "I have",scalar @rocks,"rocks!n"; print "--------- sub ----------------n"; sub subtest1{ $temp=$a.$b; $temp; } $a = "1"; $b = "2zzzzz"; $c = &subtest1; print "c: $cn"; sub addfunc{ $size = @_; print "param size: $sizen"; my($num1,$num2); ($num1,$num2) = @_; $num1 + $num2; } $addresult = &addfunc(100,99); print "addresult: $addresultn"; print "-------- 子程序 == 函数 ----n"; print "函数参数放在 @_数组内,可以用shift循环的切出第一个参数n"; print "my() 定义局部变量n"; print "子程序的返回值就是最后一部的计算值n"; sub max{ my($maxValue) = shift @_; foreach(@_){ if($_>$maxValue){ $maxValue = $_; } } $maxValue; } @numset = (100,600,3000,3001); $maxValue = &max(@numset); print "maxValue: $maxValuen"; sub which_element_is{ if(@_ < 2){ return "输入参数个数不能小于2"; } my($what,@array) = @_; my $index = 0; foreach(@array){ if($what eq $_){ #判断字符串相等不能使用==,只能用eq print "Find this element [$_]: $indexn"; return $index; } $index++; } return "can't find this element"; } @names = qw(kevin xiang jie); $which_element = &which_element_is("jie",@names); print "which_element: $which_elementn"; print "上面的程序都是不严谨语法, 开头添加 use strict 变为严谨语法检测n"; print '定义变量时需要用my定义,my $baa = 1; '."n"; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |