例如,在下面的情况下,我不想$infilename
在初始化后更改程序中任何位置的值.
my $infilename = "input_56_12.txt";
open my $fpin, '<', $infilename
or die $!;
...
print "$infilename has $result matches\n";
close $fpin;
Run Code Online (Sandbox Code Playgroud)
确保$infilename
结果中的任何更改不仅仅是警告而是错误的正确方法是什么?
use Readonly;
Readonly my $infilename => "input_56_12.txt";
Run Code Online (Sandbox Code Playgroud)
或者使用较新的Const :: Fast模块:
use Const::Fast;
const my $infilename => "input_56_12.txt";
Run Code Online (Sandbox Code Playgroud)
use constant INPUT_FILE => "input_56_12.txt";
Run Code Online (Sandbox Code Playgroud)
可能是你想要的.如果你需要将它初始化为可能在运行时改变的东西,那么你可能会运气不好,我不知道Perl是否支持它.
编辑:哦,看看eugene y的答案,Perl确实支持.