perl常量、多维数组及变量的初始化的实例代码
#!/usr/bin/perl
use strict;
use warnings;
my $test = "asdf";
print "${test}_test2\n";
#constant
use constant {
AAA => "aaa",
BBB=> "bbb",
MIN_TOTAL => 12,
SCORE_PASS => 90,
SCORE_RED => 70,
};
print AAA;
print SCORE_PASS;
#two dimesion arrays
my @steps = (
["aaa", "aaavalue"],
["bbb","bbbvalue"],
["ccc","cccvalue"]
);
print "\n";
foreach my $i (0 .. $#steps){
print "$steps[$i][0]:$steps[$i][1]\n";
}
代码2:
my $a1;
print "$a1\n";
my $a2 = undef;
print "$a2\n";
if(!defined($a1)){print "a1 is not defined\n";}
if(!$a2){print "a2 is not defined\n";}
my $a3='';
if(!$a3){print "a3 is empty string\n";}
在定义变量时一定要初始化,或者在使用时判断是否defined,很多的时候还需要判断是否为空字符串。 特别是在使用getopt::long或cgi->query获得参数后要检测是否定义,如果么有定义考虑给予默认值。
相关推荐
-
基于C++全局变量的声明与定义的详解
(1)编译单元(模块)在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作:第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件:第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件.那么,错误可能在两个地方产生:一个,编译时的错误,这个主要是语法错误:一个,链接时的错误,主要是重复定义变量等.编译单元指在编译阶段生成的每个obj文件.一个obj文件就是一个编译单元.一个.cpp(.c)和它相应的.h文件共同组成了一个编译单元.一个工程由很多编译
-
浅谈Java变量的初始化顺序详解
规则1(无继承情况下):对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器证明代码: 复制代码 代码如下: public class InitialOrderTest { // 静态变量 public static String staticField = "静态变量"; // 变量 public String field = "变量"; // 静
-
深入理解final变量的初始化
final变量的初始化位置 一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中.而且在Java1.1以前,只能是在定义时给值.三是在初如化代码块中{} 或者 static{} 复制代码 代码如下: public class InitOrder { { System.out.println("before---field"); //System.out.println("d1="+d1); d1
-
c语言全局变量和局部变量问题及解决汇总
1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量.对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内. 2.如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全
-
关于C++静态成员函数访问非静态成员变量的问题
复制代码 代码如下: class a{public: static FunctionA() { menber = 1; } private: int menber;} 编译上述代码,出错.原因很简单大家都知道,静态成员函数不能访问非静态成员,这是因为静态函数属于类而不是属于整个对象,静态函数中的 member可能都没有分配内存.静态成员函数没有隐含的this自变量.所以,它就无法访问自己类的非静态成员. 那要想访问怎么办呢?地球人都知道只要将: 复制代码 代码如下: int me
-
php 静态变量的初始化
例如: class A { public $f1 = 'xxxx'; static public $f2 = 100; } 如果要将变量赋值为对象,那么只能在构造器中进行初始化,例如: class A { private $child; public function __construct() { $this->child = new B(); } } 但是php中并没有一个类似java中的静态构造器/静态块的东西,就没有合适的时机对其进行初始化了. 对于共有的成员还有办法解决,例如: cla
-
C++中结构体的类型定义和初始化以及变量引用
C++结构体类型的定义和初始化 有时需要将不同类型的数据组合成一个有机的整体,以供用户方便地使用.这些组合在一个整体中的数据是互相联系的.例如,一个学生的学号.姓名.性别.年龄.成绩.家庭地址等项,都是这个学生的属性,见图 可以看到学号(num).姓名(name).性别(sex).年龄(age).成绩(score ).地址(addr)是与姓名为"Li Fun"的学生有关的.如果在程序中将num,name,sex,age,score,addr分别定义为互相独立的变量,就难以反映出它们之间
-
C++中指向结构体变量的指针
定义: 结构体变量的指针就是该变来那个所占据的内存段的起始地址.可以设一个指针变量,来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址. 设p是指向结构体变量的数组,则可以通过以下的方式,调用指向的那个结构体中的成员: (1)结构体变量.成员名.如,stu.num. (2)(*p).成员名.如,(*p).num. (3)p->成员名.如,p->num. 复制代码 代码如下: #include<iostream>#include<string>using na
-
C++的static关键字及变量存储位置总结
今天看博文时,看到了c++的static关键字的一些总结,还涉及到了一些代码的存储位置,为了有时间的时候能够看一下,还是自己把它给摘抄下来吧. C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. 一.面向过程设计中的static 1.静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量.我们先举一个静态全局变量的例子,如下: 复制代码 代码
-
详解C++中变量的初始化规则
前言 定义没有初始化式的变量时,系统有时候会帮我们初始化变量. 系统如何初始化取决于变量的类型以及变量定义的位置. 内置类型变量是否自动初始化取决于变量定义的位置. 函数体外定义的变量初始成0:函数体内定义的变量不进行自动初始化.除了用作赋值操作的左操作数,其他任何使用未初始化变量的行为都是未定义的,不要依赖未定义行为. 以int类型为例,一段简单的测试代码: #include <iostream> using namespace std; int a; int main() { int b;
随机推荐
- 驱除威胁—无线网络防黑完全攻略
- JS实现给json数组动态赋值的方法示例
- ASP.net(c#)用类的思想实现插入数据到ACCESS例子
- php实现图片等比例缩放代码
- MySQL数据库防止人为误操作的实例讲解
- python中的reduce内建函数使用方法指南
- C#语法相比其它语言比较独特的地方(三)
- C#多线程编程之使用ReaderWriterLock类实现多用户读与单用户写同步的方法
- JS闭包可被利用的常见场景小结
- 使表格的标题列可左右拉伸jquery插件封装
- 详解Ruby中的异常
- SQL Server设置主键自增长列(使用sql语句实现)
- 各版本IIS下ASP.net请求处理过程分析第1/3页
- jquery radio 操作代码
- jQuery 幻灯片插件(带缩略图功能)
- JavaScript数据绑定实现一个简单的 MVVM 库
- 教你正确的IE卸载与重装方法
- C#折半插入排序算法实现方法
- C语言 动态内存分配的详解及实例
- python 3利用BeautifulSoup抓取div标签的方法示例