我在脚本的开头分配了一个全局变量,这是一个空字符串,我为该子程序分配了一个值。当脚本第二次进入子例程时,该变量为null并分配了新值。
我需要为某些子程序调用使变量名称为常量,然后在条件匹配时更改子程序中的值
以下是示例代码
#!/usr/bin/perl
my $Next_5minus = '';
sub write_alog {
if (my $Next_5minus eq '')
{
........
.........
}
elsif ( $start_mtime < $end_mtime )
{
say $fh join("\n", @$alog);
}
elsif ( $start_mtime > $end_mtime )
{
my $Next_5minus = <will assign value>
..........
}
}
答案 0 :(得分:1)
如果您希望人们帮助您解决问题,那么让他们尽可能简单地为您提供帮助是很有礼貌的。至少,您应该执行以下操作:
use strict
和use warnings
添加到您的代码中,并清除他们指出的问题。在这种情况下,我怀疑你会看到有关掩盖同名变量的变量的警告。您定义了$Next_5minus
变量的三个副本。它们中的每一个都会在创建时初始化为undef
,并且会在超出范围时消失。
尝试从代码中删除无关的my
语句,看看是否能解决您的问题。