下面是我的文件,我被delimeneter分隔條件,通過電子郵件將進一步發送 列表:Device1的|城|街| roadname |區域|狀態|區域|國家| COUNTRYCODEperl的while循環不工作
________________________________________________
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 2013-04-11 16:20:20
感謝您的迴應..我已經嘗試做下面的東西,但它不工作... $設備= $ ARR [0]; $ condition =「$ Device | No data found」; (<>){ if($ line =〜/ $ condition /){ print $ condition; $ pattern = $ condition } } – user28104 2013-04-11 16:26:22
請返回並修改您的問題以包含整個代碼,而不僅僅是選中的部分。另外,**「不起作用」是什麼意思?**「不起作用」是我們理解問題的不充分描述。當你嘗試時發生了什麼?你得到不正確的結果了嗎?你有沒有得到結果?如果結果不正確,是什麼使它們不正確?你想要什麼呢?你有沒有得到任何正確的結果?如果是這樣,他們是什麼?不要讓我們猜測。 – 2013-04-11 16:49:02