Perl:验证用户输入
我正在尝试制作一个程序,我需要验证用户输入是否是IP的前两段,我已经有了验证模式是否为000.000的部分,但是我在验证数字是否低于256时遇到了问题。甚至当我试图打印@abc数组时,它也是空白的Perl:验证用户输入,perl,Perl,我正在尝试制作一个程序,我需要验证用户输入是否是IP的前两段,我已经有了验证模式是否为000.000的部分,但是我在验证数字是否低于256时遇到了问题。甚至当我试图打印@abc数组时,它也是空白的 @abc = split(".", $ARGV[0]); foreach $a (@abc){ if $a != [0 .. 256] { print "not an ip class" } else { print "it's an ip c
@abc = split(".", $ARGV[0]);
foreach $a (@abc){
if $a != [0 .. 256] {
print "not an ip class"
}
else {
print "it's an ip class"
}
}
始终使用以下命令启动Perl程序
use strict;
use warnings;
第一个参数是正则表达式。您可以给它一个字符串,但这只会在运行时将字符串的内容解释为正则表达式
在正则表达式中是特殊的,匹配任何字符。你必须逃避它:
my @parts = split /\./, $ARGV[0];
不要使用名为$a
或$b
的变量;这些有点特殊,由内部使用
=代码>比较两个数字。您不能使用它来查看元素是否是列表的一部分
你需要像这样做
for my $n (@parts) {
if ($n <= 255) {
print "ok\n";
} else {
print "not ok\n";
}
}
用于我的$n(@parts){
如果OP的可能副本可以使用正则表达式来解决问题,但这并不能解释这段代码中的错误,我想这才是真正的问题。