相关疑难解决方法(0)

我应该如何在Perl中使用"my"关键字?

我一直在网上看到Perl脚本中的变量名前面的"my"关键字,但我不知道这意味着什么.我尝试在线阅读手册页和其他网站,但鉴于我看到它与手册之间的区别,我很难辨别它是什么.

例如,它用于获取此帖子中数组的长度: 在Perl中查找数组的大小

但手册说:

我声明列出的变量是封闭的块,文件或eval的本地(词法).如果列出了多个值,则列表必须放在括号中.

它做什么以及如何使用?

perl scope declaration

86
推荐指数
3
解决办法
8万
查看次数

为什么在文件范围内用“my”声明 Perl 变量?

我正在学习 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)

perl scope

5
推荐指数
1
解决办法
1528
查看次数

标签 统计

perl ×2

scope ×2

declaration ×1