GSTIN Проверка через условие не работает в Perl - PullRequest
0 голосов
/ 31 октября 2019

Я написал Perl-код для проверки номера GSTIN, который связан с налогом Индии в соответствии со следующими правилами:

  • Первые две цифры представляют код штата согласно индийской переписи 2011 года. Каждый штат имеет уникальный код.

  • Следующими десятью цифрами будет номер PAN налогоплательщика

  • Тринадцатая цифра будет назначена на основаниина номер регистрации в состоянии

  • Четырнадцатая цифра будет Z по умолчанию

  • Последняя цифра будет для контрольного кода. Это может быть алфавит или цифра.

Ниже приведен код:

my $gst_number_input = '35AABCS1429B1AX';

my $gst_number_character_count = length($gst_number_input);

my $gst_validation =~ /\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}[Z]{1}[A-Z\d]{1}/;

if ($gst_number_character_count == 15 && $gst_number_input =~ $gst_validation) {
    print "GST Number is valid";
} else {
    print "Invalid GST Number";
}

У меня введен неверный ввод GSTIN в коде. Поэтому, когда я запускаю скрипт, я получаю:

GST Number is valid

Вместо этого я должен получить ошибку, потому что ввод GSTIN неверен:

Invalid GST Number

Может кто-нибудь помочь, пожалуйста?

Заранее спасибо

1 Ответ

2 голосов
/ 31 октября 2019

В этой части вы используете =~, где должен быть знак равенства =

my $gst_validation =~ /\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}[Z]{1}[A-Z\d]{1}/;

Если вы хотите использовать в качестве переменной, вы можете использоватьqr

Обратите внимание, что вы можете опустить {1} из шаблона, и вам не нужно использовать квадратные скобки вокруг [Z]

Ваш код может выглядеть как

my $gst_number_input = '35AABCS1429B1AX';
my $gst_number_character_count = length($gst_number_input);
my $gst_validation = qr/\d{2}[A-Z]{5}\d{4}[A-Z][A-Z\d]Z[A-Z\d]/;

if ($gst_number_character_count == 15 && $gst_number_input =~ $gst_validation) {
    print "GST Number is valid";
} else {
    print "Invalid GST Number";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...