• perl学习笔记(2)


    1)记得刚开始写perl的时候,对于一个功能,总是拿目前能用的数据类型来解决问题,不想想有没有更好的,能用能解决问题就好,这就导致了后期,要在函数里面添加功能的时候,函数要添加很多参数,一个函数有7、8个参数,并且这些参数都是有关系的,

    sub is_healthy{
        my ($name, $sex, $age, $height, $weight) = @_;
        
    }
    像上面这个判断一个人是否健康的函数,传入这几个参数,这几个参数还不算多,但是,到了后期,一旦你要增加功能,比如要根据一个人的地址做一些操作,那可能就需要再添加一个参数 address, 好,参数多了一个,但是,需求可能会不断增加,再加一个参数。。。。最后参数会很多,调用函数时,总是看到长长的尾巴。我就是这么写的。最后,经过前辈提醒,才发现自己真的没有好好思考过这个问题,为啥不用hash呢,多么简单省事,像这样,

    my $human = {};
    $human->{name} = "1y";

    
    传参数的时候,只要传一个,
    

    is_healthy($human);
    如果要添加参数的时候,只要在hash里添加键值对就好了嘛,这样在调用函数时,不用做什么改变,省事,不过,对于一些不相关的参数,得好好考虑。

    2)perl里-e 用于判读是否存在,看到别人写的代码,用-e来判断一个目录或文件是否存在,

    sub is_dir_exist{
        my ($thing) = @_;
        if( -e $thing){
    	    print "exist";
        }else{
    	    print "no";
        }
    }
    这个可以判断目录是否存在,假设在目录存在之后,接下来的操作都是针对目录而操作的,但如果你不小心传入了一个文件,并且对文件进行了原本是针对目录的操作,这时未来充满了未知,要挨骂了。。。

    判断目录可以用-d,在这种情况下用-e有风险,可能会把错误参数传到代码里。



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    hibernate 高并发下遇到的大坑
    Spring Cloud微服务架构企业中的应用
    spring cloud学习-hystrix
    点评CAT接入手册
    centOS6.5 修改catalina.sh使用crontab自动切割日志tomcat8
    mariaDB安装报错
    linux安装rap需要的软件
    mariaDB的innodb恢复报错解决
    NFinal学习笔记 02—NFinalBuild
    NFinal 视图—用户控件
  • 原文地址:https://www.cnblogs.com/Rex7/p/4752542.html
Copyright © 2020-2023  润新知