在这个循环里Perl每次都创建一个新的$szName变量。换句话说,'my'是属于'见到my就新建'的变量。 3. local 其实这个定义都可以取消了。它是在my还没出现之前的一个权宜方案。比如说一个变量$i被定义成了全局变量,可是你又想暂时使用一个也叫$i的临时变量。 no strict 'vars'; $i = 9999; { local $i =...
这个问题,其实是有区别的,但实际使用时,可能没有区别。为什么这么说呢?my $obj 这样使用,是要返回一个scalar变量。my ($obj)这样呢,是要返回一个 array。我们都知道,perl里的变量类型转换很方便,方便到你都感觉不到。为了便于理解,写一个例子:use strict;my $a = getdata();print "$a...
虽然local操作符的历史比my操作符久远,但Perl后来还是新增了my来分担local的工作,在大部分情况下应首选my,但也有一些特殊情况下必须使用local。 my操作符用于创建词法作用域变量,通过my创建的变量,存活于声明开始的地方,直到闭合作用域的结尾。 闭合作用域指的可以是一对花括号中的区域,可以是一个文件,也可以是一个...
上述脚本中使用了严格模式,然后变量$name并未使用my声明,执行此文件便会报错: Global symbol "$name" requires explicit package name at ./my07 line 5. Global symbol "$name" requires explicit package name at ./my07 line 6. Global symbol "$name" requires explicit package name at ./my07 line 7...
&myfloor; print '- floor($x)小结:总是向下取整',"\n"; print '- floor(@arr)小结:floor()不能用于数组,而floor(@arr)会将@arr强制转换为标量,即数组大小,然后取整。与上面的init()类似',"\n\n"; ### ## 测试 POSIX::ceil($x) ### print '##...
2.全局变量标准(our)关键字、局部变量标准(my)关键字 3.(local)关键字将全局变量临时借用为局部、(state)关键字将局部变量变得持久 在Perl中,所有的变量、子程序和其他可以被命名的实体默认都拥有包作用域(亦称“全局作用域”),也就是说它们存在于当前包的符号表中。
my $aim; $aim = 1000000000; # 整型 my $act = 1.5; # 浮点数 $act = 1.5e+10; # 浮点数 my $gain = “4,5000w”; # 字符串 $gain = ‘Novo gene’; # 字符串 my reality = undef; # 相当于my reality; 单引号与双引号:
perl 调用mysql脚本 perl脚本my 参数 #开头处常用模块 #!usr/bin/perl use warnings; use strict; use Getopt::Long; use File::Basename; use PerIO::gzip; #open IN,"<:gzip","$in" or die " $in:$!"; #打开的是一个gzip压缩文件,即$in是file.gz文件...
答(一): 像C语言中有作用域的概念,比如一个在函数中定义的变量,在函数外是无效的。 perl也有作用域的概念,perl定义的变量默认是全局的,当在定义变量时使用 my $abc,那么$abc的作用域就限定在当前函数体或当前for循环中。乃局部变量。 答(二): our,"把名字限于某个范围“,其实就是明确声明一个"全局变量"...
my $name="yanjing"; print"$name\n"执行结果"my"variable $name masks earlier declarationinsame scope at2.plx line3. yanjing 实际上,变量保存的是指向内存中数据的引用(指针),重新声明或重新赋值变量只是改变了变量中保存的指针所指向的内存位置。上例中,name标量中保存的是指向堆内存中字符串liujunjun的指针...