
digioleg54
User
May 10, 2017, 10:13 AM
Post #6 of 14
(4429 views)
|
Re: [BillKSmith] I have to split huge file in Perl. Can it be done in one action or need the loop and read line by line?
[In reply to]
|
Can't Post
|
|
No, there is definitely loop, I just didn't put it
my @lns=`$cmd`; foreach (@lns) { chop; if (/ TBA/) { $ln_tp=$_; ($secid,$trdr,$encd,$market_price,$last_prcdt,$secnm)=split(/\|/,$ln_tp); ($market_price_new,$last_prcdt_new,$lookup_i,$ln_o)=("","","","na"); if ($market_price=~/100\.[0]+$/ || $last_prcdt lt $old_prcdt) { # print STDERR "STDERR:>>$secid,$trdr,$encd,$market_price,$last_prcdt\n"; if (($tp_sth->execute($secid,$trdr,$encd,$market_price,$last_prcdt)) && ($ln_o=$tp_sth->fetchrow_array())) { if ($ln_o !~ /na/) { ($market_price_new,$lookup_i)=split(/\|/,$ln_o); ($market_price_new,$last_prcdt_new)=split(/\:/,$market_price_new); # $last_prcdt_new=$last_prcdt_new.'*'; $ln_tp=join("|",$secid,$trdr,$encd,$market_price_new,$last_prcdt_new,$secnm); } else { ($market_price_new,$last_prcdt_new)=($market_price,$last_prcdt); # ($last_prcdt_new=~s/\s/0/g); # $last_prcdt_new=$last_prcdt_new.'*'; $lookup_i='prc_trdr=""'; $ln_tp=join("|",$secid,$trdr,$encd,$market_price_new,$last_prcdt_new,$secnm); } $_r_trade_price->{$secid}=join(":",$market_price_new,$last_prcdt_new,$lookup_i); } } # print STDERR "$ln_tp|$lookup_i\n"; $rec_cnt++; } } thanks
|