Perl Barewords

Perl Barewords

像其他语言一样,Perl 也是容易出错的。Perl 中的一些功能是很难正确使用的。Perl的解析器在一些符号的帮助下理解了Perl的操作符、函数、方法。但情况并非总是如此。当我们使用 Barewords 时,解析器不得不做猜测工作 Bareword是一个没有必要的符号或标点符号的标识符或变量。简单地说,我们可以说 Barewords是没有引号的词 (即无引号的字符串)。尽管Perl中的严格规则不鼓励使用模棱两可的裸词,但有些裸词还是可以被解析器所接受的。

例如

#!usr/bin/perl
my bw = BWeg;
print "bw\n";

Perl中的裸词

#!usr/bin/perl
sub BWeg
{
    return "Subroutine has been executed";
}
 
bw = BWeg;
print "bw\n";

Perl中的裸词

#!usr/bin/perl
use strict;
my bw = BWeg;
print "bw\n";

它发出的编译错误是这样的。

Perl Barewords

如何正确使用裸词?

裸词可以用在哈希键、包名、常量、命名的代码块中。

例如

#!usr/bin/perl
my %India = (UP =>'Taj Mahal',
Rajasthan =>'Chittorgarh',
Kerala =>'Bakel Fort');
 
# Prints Bakel Fort
my var1 =India{'Kerala'};
print(var1, "\n");
 
# Prints Taj Mahal
myvar2 = India{UP};
print(var2, "\n");

Perl中的裸词

裸词包名

包名也是裸词。Perl必须确定如何解析 **Package- >method。 **为此,我们通过添加包的分隔符(::)来强制解析器将Package视为包名。

裸字命名的代码块

特殊的命名代码块AUTOLOAD、BEGIN、CHECK、DESTROY、END、INIT和UNITCHECK是裸词。

package Monkey::Butler;
BEGIN { initialize_simians( __PACKAGE__ ) }
sub AUTOLOAD { ... }

我们可以将sub从AUTOLOAD中分离出来,但这并不是一个常见的做法。

裸词常量

用常量pragma声明的常量可以作为裸词使用。

# don't use this for real authentication
#!usr/bin/perl
    use constant NAME => 'GeeksForGeeks';
    use constant PASSWORD => 'GeeksPl@tform';
    name=;
    pass=;
return unless name eq NAME &&pass eq PASSWORD;

如果给了错误的用户名和密码,它会返回false。另外,常数不会在双引号字符串中插值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程