Ниже мой файл, который я отделяя от delimeneter и дальнейшей отправки по электронной почте список: DEVICE1 | Город | Улица | roadname | область | состояние | область | страна | CountryCodePerl в то время как цикл не работает
________________________________________________
Device1|City|Street|roadname|region|state|area|country|countrycode
Device2|City|Street|roadname|region|state|area|country|countrycode
Device3|No data found
Device4|No data found
_________________________________________________
my $filename = '/tmp/list.txt';
open my $ifh, '<', $filename
or die "Cannot open '$file' for reading: $!";
local $/ = '';
my $filename = <$ifh>;
my @arr = split(/\|/, $filename , -1);
$Device = $arr[0];
$Region = $arr[2];
$State = $arr[3];
$area = $arr[10];
$country = $arr[19];
$logger->debug("$logid >> file information Device Name: $Device");
$logger->debug("$logid >> file information Region: $Region");
$logger->debug("$logid >> file information State: $State");
$logger->debug("$logid >> file information Area: $area");
$logger->debug("$logid >> file information Country: $country");
close($ifh);
Я могу получить информацию ниже, но мое требование - всякий раз, когда в строке отображается «Нет данных», назначьте ее переменной, например, «шаблон», которую я буду отправлять по электронной почте.
$smtp->datasend("$Device1|$region|$state|$area|$country\n");
$smtp->datasend("$pattern\n");
Благодаря
Ваш вопрос действительно неясен. В вашем коде нет цикла while. – Cfreak
Спасибо за ответ .. Я пробовал делать что-то вроде ниже, но он не работает ... $ Device = $ arr [0]; $ condition = "$ Device | Данные не найдены"; while (<>) { if ($ line = ~/$ condition /) { print $ condition; $ pattern = $ condition } } – user28104
Пожалуйста, вернитесь и измените свой вопрос, включив в него весь код, а не только отдельные его части. Кроме того, ** что означает «не работает»? ** «Не работает» - это неадекватное описание для понимания проблемы. Что случилось, когда вы попробовали? Получили ли вы неправильные результаты? Вы получили * нет * результаты? Если результаты были неверными, что сделало их неправильными? Что вы ожидали вместо этого? Вы получили * любые * правильные результаты? Если да, то каковы они? Не заставляй нас гадать. –