1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
my $queue = Thread::Queue->new(); #Anlegen des RowTypes our $rtTrade = Triceps::RowType->new( symbol => "string", #Stock Symbol name => "string", currentPrice => "float64", #aktueller Kurs der Aktie highPrice => "float64", # höchster Kursstand in den letzten 52 Wochen lowPrice => "float64", # niedrigtest Kursstand in den letzten 52 Wochen ) or confess "$!"; #Anlegen einer LWP::UserAgent + anschließende Erstellung und Ausführung des GET-Requests. my $ua = LWP::UserAgent->new; my $req = GET 'http://download.finance.yahoo.com/d/quotes.csv?s=YHOO+GOOG+MSFT&f=snl1kj'; my $res = $ua->request($req); #Prüfen der Ergebnisse des GET-Requests + Splittung und Speicherung der Ergebnisse in einem Array. my @stockDataArray; if ( $res->is_success ) { @stockDataArray = split( '\n', $res->content ); } else { print $res->status_line . "\n"; } my $row; #Erstellung der einzelnen Rows aus dem zuvor erstellten Array. for ( my $i = 0 ; $i < @stockDataArray; $i++ ) { my @temp = split( ',', $stockDataArray[$i] ); $row = $rtTrade->makeRowArray( $temp[0], $temp[1], $temp[2], $temp[3],$temp[4] )or die "$!"; #$row = $rtTrade->makeRowArray(@temp); #print $row->printP() . "\n"; #Erstelltes row-Objekt wird korrekt ausgegeben. $queue->enqueue($row); } for (my $i = 0; $i < 6; $i++) { my $rowBack = $queue->dequeue(); print $rowBack->printP() . "\n"; }
1 2 3 4 5
my $row; for ( my $i = 0 ; $i < @stockDataArray; $i++ ) { ... $row = $rtTrade->makeRowArray... $queue->enqueue($row);
Guest chris05133Erstmal Danke für die schnelle Antwort. ;)
Ursprünglich hatte ich die zeile in der schleife auch so stehen:
my $row = .... Dann bekomme ich aber gar nichts mehr angezeigt wenn ich die Objekte aus der Queue hole und z. B. ausgebe.
1 2 3 4 5 6
my @queue; # schleife my $row = ...; push @queue, $row; ... # später elemente in @queue ausgeben
QuoteProgrammiert habe bisher in Java oder C/C++ und da gibt es ja sowas wie $ nicht, bzw. in C/C++ sonst ja die Operatoren & und * für den Umgang mit Variablen. Naja, aber so langsam gewöhn ich mich dran.
sub foo($arg1, $arg2) { }