我似乎遇到了几种不同的方法来查找数组的大小.这三种方法有什么区别?
my @arr = (2);
print scalar @arr; # First way to print array size
print $#arr; # Second way to print array size
my $arrSize = @arr;
print $arrSize; # Third way to print array size
我知道myPerl中有什么.它定义了一个仅存在于定义它的块范围内的变量.怎么our办?有our什么不同my?
在我看来,如果人们使用以下内容,可以解决Perl标签中的许多问题:
use strict;
use warnings;
我认为有些人认为这些类似于训练轮子或不必要的并发症,这显然不是真的,因为即使是非常熟练的Perl程序员也会使用它们.
似乎大多数精通Perl的人总是使用这两个pragma,而那些从使用它们中获益最多的人很少这样做.所以,我认为这将是一个好主意,有一个问题联系起来,鼓励人们时至use strict和warnings.
那么,为什么一个Perl的开发use strict和warnings?
我正在为学校学习 Perl,目前正在学习my关键字的使用和 Perl 中的范围界定。(作为参考,我正在查看如何在 Perl 中使用“我的”关键字?)
在我看来,C 风格的默认作用域最有意义……您在块内声明一个变量,该变量存在于该块内,一旦离开该块,该变量将不再可访问。为什么在 Perl 中,要指定这种行为,必须使用my关键字?似乎将变量的范围限制在使用它的地方将是良好的标准行为,并且一直使用my似乎非常多余,并且会导致代码混乱。
似乎有点像走进杂货店,在继续购物之前立即大声宣布您喜欢的某某品牌,以防万一您周围的人好奇(他们可能不是)。
(可能重复,这个问题可能会被删除......为什么在文件范围内用“my”声明 Perl 变量?。)
前sort()几天我问了一个关于在Perl 函数中使用"$ a"和"$ b"的问题:
Perl的"sort()"函数究竟是什么"$ a"和"$ b"?
我现在有一个跟进问题.是"$ a"和"$ b"仅使用sort()或是否有任何其他Perl函数利用这些特殊的全局变量?
或者即使没有其他功能使用它们,是否还有其他情况sort()你会使用"$ a"或"$ b"?
澄清:
简而言之,问题是"$ a"和"$ b"可以被其他东西使用sort()吗?
我只是想知道他们可以使用的其他情况.我从未见过其他任何东西使用的"$ a"或"$ b",并且想知道除了之外还有其他任何特殊用途sort().
我目前正在使用 Perl 来解析来自 RS232 串行端口的传入命令序列。我尝试使用状态机,它的预期行为是:(1)从串口接收一系列字节;(2) 状态机使用字节作为输入,并跳转到适当的状态。
我想出了一个简化的演示Perl代码(贴在下面),但是遇到了一个问题: 当代码进入“while(1){}”时,就卡在这里,出不来。 因此,$din 字节序列分配被“while(1){}”阻止,并且对状态机不可见。因此,FSM 卡在“INIT”状态,根本不跳转。
我认为这应该是 Perl 编码中一个非常简单或入门级的练习,但是通过 Google 搜索并没有太大帮助。谁能帮我这个?先谢谢了~
...
my %next_state = (
        "INIT" => sub{
                $din eq "AA" and return "HEADER0" ;
                return "INIT"                     ;
                },
        "HEADER0" => sub{
                $din eq "99" and return "HEADER1" ;
                return "INIT"                     ;
                },
        ...
        );
# Set state machine's initial state.
my $cur_state = "INIT"   ;
# Integer for debugging purpose.
my $itgi = 0;
# Run the state machine. …