zoukankan      html  css  js  c++  java
  • 第 5章 eval

    Perl根据其参数类型的不同,以两种似乎截然不同的方工作。

    如果给定的是字符串,Perl就会将它当作小程序并编译执行(如前面所提到的那样);

    这被称做动态表达式计算。字符串的内容在编译时可以是以已知的也可能是未知的。

    如果给定的参数为一个代码块——–也就是说在编译时代码是知道的,则eval 则被用来捕获运行时的例外。

    字符串形式:表达式计算:

    [root@master perl]# cat m21.pl
    a=10;b = 20;
    str=c =a+b’;
    eval str;printc,” ”;
    [root@master perl]# perl m21.pl
    30

    代码块形式,例外处理:

    在这种形式下,eval后面跟的是一个代码块,而不再是包含字符串的标量变量。

    它被用来处理运行时错误,或称做例外。错误可以是内建的(如内存溢出,除数为0)

    [root@master perl]# cat m22.pl
    eval {
    a=10;b=0;

    c=a/b;  
    };  
    print
    @;
    [root@master perl]# perl m22.pl
    Illegal division by zero at m22.pl line 4.

    在编译脚本时,Perl对代码块进行语法检查并生成编译代码。在遇到运行错时,Perl将

    跳过eval块中的剩余代码,并将$@设置为相应的错误信息。

  • 相关阅读:
    CSS布局--坑(2)
    CSS布局--坑(1)
    微信小程序wx:for 循环中item的keng
    初体验小程序Vue交互
    vue中数组变动更新检测
    【vue】v-if和v-show的区别
    babel把ES6转化为ES5的时候报错
    Vue.js大总结
    性能测试完整流程(二)
    性能测试完整流程(一)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351342.html
Copyright © 2011-2022 走看看