zoukankan      html  css  js  c++  java
  • [perl笔记] - 流程和函数

    if(){

    }elsif(){

    }else{

    }

    while(){

    }

    until(){

    }

    for(; ;){

    }

    foreach $word (@words) {
        if ($word eq "the") {
          print ("found the word 'the'\n"); 
        }
      }

    do {
        statement_block
      } while_or_until (condexpr);

    last:  与C中的break作用相同;

    next:  与C中的continue作用相同;

    redo:  重复此次循环,即循环变量不变,回到循环起始点,但要注意,redo命令在do循环中不起作用。

    goto label;

    函数:

    C语言中:

    1  先声明,再调用,再定义

      void fun(void);

      void other(void){fun();}

      void fun(void){};

    2 或者先定义,再调用

      void fun(void){};

      void other(void){fun();}

    perl语言

    函数,返回值缺省,return即可,和python,ruby相同

    1  先定义,再调用,可以省略&符号

       sub subname{
        }
        ...
        subname;

    2  先使用&符号调用,再定义,

      &subname;
      ...
      sub subname{
        ...
      }

    3  先声明,再调用,再定义
      sub subname;
      ...
      subname;
      ...
      sub subname{
        ...
      }

    4 用do调用 
      do my_sub(1, 2, 3);等价于&my_sub(1, 2, 3);

    变量

    本地变量:my

    my($scalar) = 43;

    本地变量和调用子程序都可以使用的变量:local

    local(@array) = (1, 2, 3);

    参数传递

    #传递数组
      &addlist (@mylist);
      &addlist ("14", "6", "11");
      &addlist ($value1, @sublist, $value2);
      ...
      sub addlist {
        my (@list) = @_;
        ...
      }
    #参数为数组时,子程序只将它赋给一个数组变量。如
      sub twolists {
        my (@list1, @list2) = @_;
      }
    #中@list2必然为空。但简单变量和数组变量可以同时传递:
      &twoargs(47, @mylist); # 47赋给$scalar,@mylist赋给@list
      &twoargs(@mylist); # @mylist的第一个元素赋给$scalar,其余的元素赋给@list
      ...
      sub twoargs {
        my ($scalar, @list) = @_;
        ...
      }
    
    #注意简单变量和数组同事传递时的顺序
    sub argument{
    
        my ($filetimes, @filename,)=@_; #注意,如果$和@调换位置,则filename则为空值
    
    }
    
    $filename=file4;
    @filenames=('file1','file2','file3');
    argument( $filename,@filenames,);
    
  • 相关阅读:
    Java实现 LeetCode 450 删除二叉搜索树中的节点
    PHP mysqli_field_count() 函数
    PHP mysqli_fetch_row() 函数
    PHP mysqli_fetch_object() 函数
    PHP mysqli_fetch_lengths() 函数
    PHP mysqli_fetch_fields() 函数
    linux修改IP地址
    树莓派玩耍笔记2 -- 我的板子是正品么?(解答一些小问题)
    在一台server上部署多个Tomcat
    第十八篇:融汇贯通--谈USB Video Class驱动
  • 原文地址:https://www.cnblogs.com/zengyou/p/3055665.html
Copyright © 2011-2022 走看看