如何使用perl命令行参数避免错误并使用strict

前端之家收集整理的这篇文章主要介绍了如何使用perl命令行参数避免错误并使用strict前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
添加use strict后,为什么我的代码无效?使用警告;?有没有办法让它发挥作用?

以前,工作代码是:

#!/usr/bin/perl -s
print "x: $x\n";
print "y: $y\n";

我运行的命令是perl -s test.pl -x =“hello”-y =“world”.输出是:

x: hello
y: world

但是,我添加后使用严格;使用警告;,我收到以下错误

Variable "$x" is not imported at test.pl line 4.
Variable "$y" is not imported at test.pl line 5.
Global symbol "$x" requires explicit package name at test.pl line 4.
Global symbol "$y" requires explicit package name at test.pl line 5.
Execution of test.pl aborted due to compilation errors.

我知道我需要声明我的$x和我的$y来修复第3和第4个错误.但前两个错误意味着什么,我该如何克服它?

解决方法

您正在使用一个基本的开关解析器perl -s,它使用全局变量.为了使它与use strict一起使用,你需要引用全局变量:$main :: x,如ruakh指出的那样.

但即便如此,词汇变量(用我的声明)在几乎所有情况下都是可取的.做就是了:

use strict;
use warnings;

my ($x,$y) = @ARGV;
print "x: $x\n";
print "y: $y\n";

并使用:

perl test.pl hello world

有关更详细和类似开关的处理,请查看Getopt::Long模块.

原文链接:https://www.f2er.com/Perl/171728.html

猜你在找的Perl相关文章