设为首页 收藏本站
查看: 845|回复: 0

[经验分享] [脚本语言]perl语言入门笔记

[复制链接]

尚未签到

发表于 2017-5-19 06:41:35 | 显示全部楼层 |阅读模式
perl记事本

1. 'yu' x 3    #  print yuyuyu

2.print "yu jian ${age}s" # 加{}  促使变量不会变成$ages

3. 4 ** 2  #4的平方

4.(1..5) #  -->(1,2,3,4,5)

5.qw ( yu jian's book)  # 简洁,更少输入

6.($yu,$jian)=($jian,$yu) # 值互换

7.($yu,$jian)=qw(yu jian) # 赋值

8.@array=qw/yu jian/; #数组

9.@array=5..9;
$yu=pop(@array)  # $yu=9  and @array=(5,6,7,8)
$yu=pop @array  # $yu=8  and @array=(5,6,7)

10.如果数组为空 pop不会报错,什么也不返回,直接返回undef

11.push(@array,0)  # @array=(5,6,7,0)

12.pop和push都操作数组末尾

13.shift 和unshift是对数组的开始端操作

14.$_  perl的默认变量
for(1...10){
    print $_;  # $_ = 1 or 2 or 3...
}

15.perl会正确处理上下文
@people=qw{yu gao};
@list=@people #得到列表
$n=@people #得到人数2

16.scalar @array #scalar 导致切换为标量上下文
@array =qw/yu jian gao su/;
print "love is ".@array."\n"; #love is 4
print "love is ",@array,"\n"; #love is yujiangaosu
print "love is ".scalar @array,"\n";#love is 4

17.@lines=<STDIN> #在列表上下文中读取标准输入


18.chomp 去掉所有的换行符 chmop(@lines)

19. 调用自定义方法  &methodName;

20.sub max{
    if(@_!=2){  #判断参数个数
        print "waning!!!";
        return -1;
    }
    my($m,$n); #创建新的所有变量
    ($m,$n)=@_; #将参数赋值给变量
    if($m > $n){$m}else{$n}
}

21.my($num)=@_ #获取数组的第一个元素
    my $num=@_ #数组的数量

22.use strice ; #强制使用一些严格的良好的程序语言规则

23.sub division{
        $_[0] / $_[1]; #第一个参数和第二个参数
}

24.@ARGV=qw# file1 file2 #;# 强制让砖石操作符读取这两个文件
while(<>){
    chomp;
    print "It was $_\n":
}

25.printf "Hello, %s; your password in %d days!\n",$user,$days;#格式化输出
%d 整数 %g 浮点数

27.die处理错误输出

28.读取文件
open CONFIG,"c:/test.txt";
while(<CONFIG>){
print $_."\n";
}

29. say == print  xxxx ."\n"  # say  相当 等于print 加换行符

30.hash
$family_name{"fred"}="flint";
$family_name{"bar"} ="rubble";

%family_name("fred","flint","bar","rubble");

my %family_name=(
    "fred" => "flint",
    "bar" => "rubblle";
)

my @k=keys %family_name;
my @v=values %family_name;  #return array

31.
each 函数
while( ($key,$value)=each %family_name ){
        print "$key => $value\n";
}
exists函数
if(exists $family_name("dino")){

}
delete函数
delete $family{"fred"};

32.\1,\2使用反向引用
$_=""abba;
if(/(.)\1 /){#匹配到 bb
    print "it matched";
}

33. \d = [0-9]
\w = [A-Za-z0-9_]
[^\d] 非数字
[^\w]非词
[^\s] 非空白字符

34./yes/i  # /i 不区分大小写

35./s 匹配任意字符 , 不包括换行

36./x运行加入空白,便于阅读理解

37.m//模式匹配搜索功能
S/// 模式匹配替换功能
/g 全局替换

38.@fields = split /separator/ , $string;

39.my $result = join $glue,@pieces;
my $x = join ":",4,5,6; # $x = "4:5:6";

40.*贪婪 *?非贪婪版本

41. 从命令行进行在线编辑
perl -p -w -e "s/ran/ra/g" fred.dat
-p 打印  -n 去掉自动打印  -w 打开警告选项  -e 表示后面更得是代码,而不是普通的参数

42.last 类似break

43.my $stuff="Howdy world!";
my $where=index($stuff,"wor"); # $where =  6

44.my $mineral=substr("Fred J. Flintstone",8,5); # 值为Flint

45.智能匹配对应不同德操作数,不同德处理方式
%a ~~ %b         哈希的键是否一致
%a ~~@b          至少%a中的一个键在列表@b之中
%a ~~ /Fred/     至少一个键匹配给定的模式
%a ~~ 'Fred'      哈希中某一指定键$a{'Fred'} 是否存在
@a ~~ /Fred/     有一个元素匹配给定的模式
@a ~~ 123        至少有一个元素转化为数字后事123

$name ~~ undef  $name确实尚未定义

46.system 启动子进程
system "date";

14.my $tarfile="some*.tar";
my @dirs=qw(fred|flinet<bar&rubble> betty);
system "tar"."cvf",$tarfile,@dirs;  带参数的系统命令调用

47.system 的所有语法对exec都适用
执行exec类似goto语句,跳转到另个进程进行执行,当前perl进程会关闭
chdir "/tmp" or die "cannot chdir /tmp: #!";
ecec "bedrock","-o","args1",@ARGV;

48.$ENV{'PATH'}="/home/rootbeer/bin:$ENV{'PATH'}";
delete $ENV{'IFS'};
my $make_result= system "make";
改修改并不能影响shell或者其他父进程

49.my $now =`date`;
print "The time is now $now";
魔力反引号调用进程

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-378855-1-1.html 上篇帖子: Chapter 5 Using Perl for CGI Programming 下篇帖子: Perl 第二章 簡單變量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表