我一直在网上看到Perl脚本中的变量名前面的"my"关键字,但我不知道这意味着什么.我尝试在线阅读手册页和其他网站,但鉴于我看到它与手册之间的区别,我很难辨别它是什么.
例如,它用于获取此帖子中数组的长度: 在Perl中查找数组的大小
但手册说:
我声明列出的变量是封闭的块,文件或eval的本地(词法).如果列出了多个值,则列表必须放在括号中.
它做什么以及如何使用?
我正在学习 Perl 并试图了解变量范围。我知道这my $name = 'Bob';将在 sub 中声明一个局部变量,但是为什么要my在全局范围内使用关键字?这只是一个好习惯,所以您可以安全地将代码移动到子程序中吗?
我看到很多这样做的示例脚本,我想知道为什么。即使使用use strict,当我删除my. 我试过比较有和没有它的行为,我看不出有什么区别。
这是执行此操作的一个示例:
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $dbfile = "sample.db";
my $dsn = "dbi:SQLite:dbname=$dbfile";
my $user = "";
my $password = "";
my $dbh = DBI->connect($dsn, $user, $password, {
PrintError => 0,
RaiseError => 1,
AutoCommit => 1,
FetchHashKeyName => 'NAME_lc',
});
# ...
$dbh->disconnect;
Run Code Online (Sandbox Code Playgroud)
当我测试这种行为时,我似乎很不走运。这是我测试的脚本:
use strict;
my $a = 5;
$b = …Run Code Online (Sandbox Code Playgroud)