zoukankan      html  css  js  c++  java
  • perl do

        do BLOCK
                Not really a function. Returns the value of the last command in
                the sequence of commands indicated by BLOCK. When modified by
                the "while" or "until" loop modifier, executes the BLOCK once
                before testing the loop condition. (On other statements the loop modifiers test the conditional first.)
    
    
    do BLOCK 不是一个真正的函数,返回BLOCK里最后命令的返回值。当返回值被while 或者 until 循环修改,在测试循环条件开始前执行BLOCK
    
    
    
                "do BLOCK" does *not* count as a loop, so the loop control
                statements "next", "last", or "redo" cannot be used to leave or
                restart the block. See perlsyn for alternative strategies.
    
    do BLOCK 不统计称为一个循环,因此循环控制着语句如next last 或者redo不能用于脱离还是重启block
    
    
    
    
        do SUBROUTINE(LIST)
                This form of subroutine call is deprecated. SUBROUTINE can be a
                bareword, a scalar variable or a subroutine beginning with "&".
    
    do 子函数列表  这种形式的子程序调用时不推荐的,子函数可以是bareword 标量变量
    
    或者子函数 以&开头。
    
        do EXPR Uses the value of EXPR as a filename and executes the contents
                of the file as a Perl script.
    
                    do 'stat.pl';
    
                is just like
    
                    eval `cat stat.pl`;
    
                except that it's more efficient and concise, keeps track of the
                current filename for error messages, searches the @INC
                directories, and updates %INC if the file is found. See "@INC"
                in perlvar and "%INC" in perlvar for these variables. It also
                differs in that code evaluated with "do FILENAME" cannot see
                lexicals in the enclosing scope; "eval STRING" does. It's the
                same, however, in that it does reparse the file every time you
                call it, so you probably don't want to do this inside a loop.
    
    除非是更有效和简明的,跟踪当前文件的错误信息,搜索@INC中定义的目录,
    
    更新 %INC 如果文件被找到 建议不要使用do 在一个循环里,每次调用都会重新解析文件
    
                If "do" can read the file but cannot compile it, it returns
                "undef" and sets an error message in $@. If "do" cannot read the file, it returns undef and sets $! to the error. Always check $@
                first, as compilation could fail in a way that also sets $!. If
                the file is successfully compiled, "do" returns the value of the last expression evaluated.
          do可以读文件但是不能编译它,它返回"undef" 存储错误信息到$@
    
    如果do 不能读文件 返回undef 写入$! 首先核对$@ 
    
    
    
                Inclusion of library modules is better done with the "use" and
                "require" operators, which also do automatic error checking and
                raise an exception if there's a problem.
    
                You might like to use "do" to read in a program configuration
                file. Manual error checking can be done this way:
    
                    # read in config files: system first, then user
                    for $file ("/share/prog/defaults.rc",
                               "$ENV{HOME}/.someprogrc")
                    {
                        unless ($return = do $file) {
                            warn "couldn't parse $file: $@" if $@;
                            warn "couldn't do $file: $!"    unless defined $return;
                            warn "couldn't run $file"       unless $return;
                        }
                    }
    

  • 相关阅读:
    浅析BIO、NIO、AIO
    equals()和hashCode()区别
    mysql分区
    java反射
    设计模式
    两个线程一个生产者个一个消费者
    Redis事务
    常用面试题
    springboot整合redis(注解形式)
    ElasticSearch6更新与重大变化
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351876.html
Copyright © 2011-2022 走看看