0
我有一個符號下載從數據庫產生這種填充符號散列就好了。當我的鑰匙排序,我得到這個perl使用哈希過濾另一個哈希內容
foreach $symbol (sort keys %symbol_hash) {
print "$symbol\n ";
}
A AA AAL AAPL ABBV ABT ABT_SPIN ABX ACI ACN ACT ADBE ADI ADM ADSK AEIS AEO AES AET AFAM AGN AGU AIG AKAM AKS ALL ALNY ALR ALU AMAT AMGN AMP AMZN ANF ANN ANR APA APC ARCC
我有一個包含的信息很多許多工藝Unix的配置文件。
這是配置文件
# Tick Size
# tr -d \ | sort -u
TickSizePostOpen = 1.00
TickSize = {
penny1 = {
TickSize = 0.00
members = {
IWM
QQQ
SPY
SPY_TEST
}
}
penny = {
TickSize = </0.000/0.00/0.00
members = {
A
AA
AAL
AAPL
ABT
ABT_SPIN
ZNGA
}
}
notpenny = {
TickSize = </9/9.99/9.99
}
}
BIPP.QuoterOx = {
Cup1and2 = {
BIPP.QuoterOx = BIPP-ox-1
members = {
Cup_1
Cup_2
}
}
TRAP.PxByGroup = 1
TRAP.Px = {
group1 = {
TRAP.Px = OPTxxxxxx
members = {
px.TRAP.1
}
}
group2 = {
TRAP.Px = OPTxxxxxx
members = {
px.TRAP.2
}
}
TRAP.QuoterOx = {
Cup0 = {
TRAP.QuoterOx = QESxxxxx
members = {
Cup_0
Cup_99
}
}
Cup1and4and10 = {
TRAP.QuoterOx = ise-ox-1-4-10-dti
members = {
Cup_1
Cup_4
Cup_10
}
}
Cup56 = {
TRAP.AuctionOx = ise-ox-56-ecl
members = {
Cup_56
}
}
}
TRAP.RotateQuote = {
rotatenames = {
TRAP.RotateQuote = 1
members = {
AAPL
ADY
AEIS
AFAM
AGP
ALNY
ZINC
}
}
}
Underlying = {
Cup0 = {
Underlying = MHR
members = {
Cup_0
}
}
g1 = {
Underlying = CEL
members = {
Cup_1
}
}
}
BIPP.Px = {
group1 = {
BIPP.Px = BOXPXMHR1
members = {
px.BIPP.1
}
}
group2 = {
BIPP.Px = BOXPXMHR2
members = {
px.BIPP.2
}
}
}
TWIG.Px = {
AB = {
TWIG.Px = TWIGPXMHR1
members = {
A
B
}
}
CD = {
TWIG.Px = TWIGPXMHR2
members = {
C
D
}
}
NOPQR = {
TWIG.Px = TWIGPXMHR6
members = {
N
O
P
Q
R
}
}
STUV = {
TWIG.Px = TWIGPXMHR7
members = {
S
T
U
V
}
}
WXYZ = {
TWIG.Px = TWIGPXMHR8
members = {
W
X
Y
Z
}
}
}
我所試圖做的是從數據庫中下載的符號,填充符號散(工作),然後加載在配置文件中的文件,解析它歸結爲其最親密的元素,並使用符號哈希作爲過濾器,填充便士哈希。因此,如果從精簡配置文件中的元素在符號哈希中,請將其放入便士哈希中。
#!/perl/bin/perl
use strict;
use warnings;
use DBI;
use Data::Dumper;
my $dbUser = 'yeah';
my $dbPass = 'boy'; # <--- was missing closing single quote
my $dbSid = 'yeah.boy';
my $dbh = DBI->connect("dbi:Oracle:$dbSid", "$dbUser", "$dbPass") or die("Couldn't connect: $!");
my $penny_file = "/data/wowmom.cfg";
my %penny_hash =();
my %symbol_hash =();
my $query = "select alotof stuff from yeah.boy ";
if (!$dbh) {
print "Error connecting to Database: $DBI::errstr\n";
}
my $cur_msg = $dbh->prepare($query) or die "\n\nCould not prepare statement: " . dbh->errstr;
$cur_msg->execute();
while (my @row = $cur_msg->fetchrow_array) {
$symbol_hash{ $row[0] } = 1;
}
open(my $penny_fh, '<', "$penny_file") or die "Can't open $penny_file for reading: $!";
while (<$penny_fh>) {
next unless /\S/;
#print unless /[#{}=]/ ; # try this - the parse works!
if (!/[#{}=]/) {
if ($symbol_hash{$_}) {
$penny_hash{$_} = 1; # does not populate
}
}
}
#foreach my $symbol (sort keys %symbol_hash) {
# print "$symbol\n ";
#} # works
print Dumper(\%penny_hash); #does not work
#print Dumper(\%symbol_hash) ; # works
#foreach my $penny (sort keys %penny_hash) {
# print "$penny\n ";
#}
的自卸車(\%penny_hash)打印什麼。
這可能僅僅是一個複製/粘貼錯誤,但你在該行'我的$ DBPASS =「男孩缺少一個右單引號;' – ThisSuitIsBlackNot 2014-08-29 14:28:07
例如,您不是''penny_file''中的''chomp''行,所以您比較'foo'和'foo \ n'。 – ThisSuitIsBlackNot 2014-08-29 14:34:50
有沒有人有一個規範的答案忘記'chomp'? – RobEarl 2014-08-29 14:57:07