Я никогда прежде не работал с Perl (избегал, где мог), и поэтому мои знания разбросаны по теме.
Я знаю, что скрипт, на который я смотрю, имеет массив значений ProductID в@ :: s_Ship_sShipProducts.
Я пытался проверить, начинался ли какой-либо из ProductID в массиве с B или S, и, если это так, выполнял функцию, иначе выполняю другую функцию.Но в итоге я сделал для каждого ProductID заявление.Это то, что у меня (по общему признанию) было.
my $i;
for $i (0 .. $#::s_Ship_sShipProducts) # for each product
if ($::s_Ship_sShipProducts[$i] =~ /^(B|S)/) # Determine if B or S product
{
if (defined $phashBandDefinition->{'FreeOver'} && CalculatePrice() > 250)
{$nCost = 0;}
}
else {
if (defined $phashBandDefinition->{'FreeOver'} && CalculatePrice() > $phashBandDefinition->{'FreeOver'})
{$nCost = 0;}
}
Как я мог изменить это так, чтобы массив проверялся, чтобы видеть, был ли какой-либо ProductID верным и возвращать true, или false, если ничего не соответствовало?Затем выполнить соответствующую функцию, основанную на true или false?Я немного почитал, но все еще в темноте.Спасибо за ваше время.