gpt4 book ai didi

perl - BEGIN block 和变量声明

转载 作者:行者123 更新时间:2023-12-05 08:21:10 30 4
gpt4 key购买 nike

BEGIN block 中设置变量,但在 BEGIN block 之外声明变量是否有效?

#!/usr/bin/env perl
use strict;
use warnings;
use 5.10.0;

my $var;

BEGIN{ $var = 10 }

say $var;

最佳答案

是的,这是有效的。事实上,您必须那样做,否则 $var 将是 BEGIN block 的局部变量,并且在程序的其余部分不可用。引用perlsub :

A my has both a compile-time and a run-time effect. At compile time, the compiler takes notice of it. ... Actual initialization is delayed until run time, though, so it gets executed at the appropriate time, such as each time through a loop, for example.

编译时效应是您可以在 BEGIN block 中访问变量的原因。请注意,my 上的任何初始化都将在 BEGIN block 被评估后发生(因此将覆盖 BEGIN 可能设置的任何值。)

关于perl - BEGIN block 和变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18514511/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com