在Perl 中,my关键字用于声明具有词法作用域(lexical scope)的变量。这意味着使用my声明的变量只在其声明的块或文件中有效,并且不能在该块或文件之外访问。这有助于避免变量污染全局命名空间,提升代码的可维护性和可读性。 示例1:块级作用域 #!/usr/bin/perlusestrict;usewarnings;{my$variable="Hello, World!"...
是指的一个块, 或者一个文件, 凡是由my修饰的变量都是词法作用域中的变量, 它们不会出现在包中的符号表中, 在包之外不可见, 更甚者, 如果一个由my修饰的变量在一个块中, 它就仅仅在这个块中可见了. 2. 如果想让对某个全局变量的修改局部化, 那么就使用local修饰符, 在出了这个块之后, 自动恢复为全局...
最常见的声明形式是my,它定义词法范围的变量;这些变量的名字和值都存储在当前范围的临时中间变量暂存器里,而且不能全局访问。与之相近的是our声明,它在当前范围输入一个词法范围的名字,就象 my 一样,但是实际上却引用一个全局变量,任何人如果想看地话都可以访问。换句话说,就是伪装成词汇的全局变量。 另外一种形...
写涉及多个Perl文件(即使用了package时)的Perl程序时,尽量使用my声明局部变量,甚至要合理使用out、local 写较小的Perl脚本、写一个简单的Perl命令工具时,请随意,因为这时即使使用全局变量出问题也很容易调试 写Perl一行式命令时,全部使用全局变量,尽可能地缩减命令行的字符数量,如非必须,否则不要使用my声明局部变量,...
词法变量是按词法作用域划分的,这意味着它们只在当前词法作用域(基本上是文件或块)中可见。
my ($class, %args) = @_; return bless \%args, $class; } Perl实例/对象 实例或对象主要是对哈希的祝福引用。祝福某事意味着我们祝福该变量所指的事物。 use Scalar::Util 'blessed'; my $Ana = {}; my $Christian = $Ana; bless $Ana, 'Happiness'; ...
my($name,$money); $name="susan"; @friends=qw(tom jack); @dogs=qw(china usa); local $main::dou="hello"; $money="dollar"; while(($key,$value) = each(%main::)) { print "$key:\t$value\n"; } [root@dou shili]# perl p1.pl ...
2. my 慢慢地有人觉得 Perl 的"自由射击式"变量定义法则不行,最突出 的就是一些常会打错字 (typo) 的人。假如你定义了一个变量叫 $ szStateMachineStatus ,可是在某个地方写成了 $szStatMachineStatus,少了一个 e。因为不 use strict 啊,所以没有 任何警告,可以这样用。结果就是出了错你就慢慢 debug ...
Perl中的strict vars(在Perl中strict的选项之一,"use strict"会同时打开所有变量)要求在使用之前声明所有变量。这意味着该代码:好的。 1 2 my $strict_is_good='foo'; $strict_iS_good .='COMPILE TIME FATAL ERROR'; 在编译时生成致命错误。好的。