Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Re: Flat File Database & GD::Graph (REVISITED)

by tfrayner (Curate)
on Mar 19, 2002 at 17:27 UTC ( #152788=note: print w/ replies, xml ) Need Help??


in reply to Re: Flat File Database & GD::Graph (REVISITED)
in thread Flat File Database & GD::Graph (REVISITED)

Hi,

While I also am not entirely clear on your problem, I have managed to get your modified code to work simply scoping @temp1 and $domain using my, and by not printing the header out to the same location as the data. The following code generates a PNG image on STDOUT:

#!/usr/bin/perl -w # Declare the stuff we need to use use strict; use CGI; use GD::Graph::linespoints; use constant TITLE => "AAA Days to Integration Average: Line Chart"; my $q = new CGI; my $graph = new GD::Graph::linespoints(600, 300); my $largestValue = 0; my (@xAxisOfDates,@yAxisOfPartners,@yAxisOfArf, @data) = (); #open(HANDLE,"integrate.dat"); # commented out 'cos I'm using DATA while (<DATA>) { # note DATA here chomp; my @temp1 = split(/\|/, $_); # use strict needs 'my' here my $domain = unpack ("A5", $temp1[17]); # and here push (@xAxisOfDates, $temp1[1]); push (@yAxisOfPartners, $temp1[4]); push (@yAxisOfArf, $temp1[5]); if ($temp1[4] > $largestValue){ $largestValue = $temp1[4]; } if ($temp1[5] > $largestValue){ $largestValue = $temp1[5]; } } #close(HANDLE); # using DATA for simplicity here @data = (\@xAxisOfDates, \@yAxisOfPartners, \@yAxisOfArf); $graph->set( title => TITLE, x_label => "Third Quarter FY 2002", y_label => "Average Days", long_ticks => 1, y_max_value => $largestValue, y_min_value => 0, y_tick_number => 10, y_label_skip => 0, bar_spacing => 4, types => [ "linespoints", "linespoints" ], dclrs => [ "red", "black" ], ); $graph->set( markers => [1,1] ); $graph->set_legend( "Partners", "ARF" ); my $gd_image = $graph->plot( \@data ); # I don't know where you want this, but putting it # in the png doesn't seem to work :-P #print $q->header( -type => "image/png", -expires => "-1d" ); binmode STDOUT; print $gd_image->png; #get_data(); # undefined function; perl not happy __DATA__ 1|1/27|2002|3|26|19|7|7|21|10|3|34|7|73|undef|71|6|20 2|2/03|2002|3|26|19|8|28|21|10|3|34|7|73|undef|72|6|20 3|2/10|2002|3|24|24|8|28|21|10|3|46|7|73|undef|72|8|20 4|2/17|2002|3|22|23|6|28|21|10|3|46|7|73|undef|72|8|20 5|2/24|2002|3|18|23|6|28|22|10|3|46|38|73|undef|72|8|20 6|3/03|2002|3|13|25|6|36|18|28|9|33|38|44|undef|65|8|20 7|3/10|2002|3|13|35|11|50|22|28|9|33|38|44|undef|65|8|20 8|3/18|2002|3|12|33|11|62|24|28|9|33|38|44|undef|65|undef|undef
Note that I had to turn taint checking off ("Too late for -T option..."). I'm afraid I don't have the time right now to address this issue and must therefore leave it as an exercise for the reader :-)
I hope this answers your problem.

Tim

Update: *sigh*, shows how often I use -T...
This thread explains the taint problem I was having. In short: don't worry about it :-P


Comment on Re: Re: Flat File Database & GD::Graph (REVISITED)
Download Code
Re: Re: Re: Flat File Database & GD::Graph (REVISITED)
by suggus (Sexton) on Mar 19, 2002 at 19:04 UTC
    Hi Tim,

    Thanks for your help! When I tried it it still gave me a 500 error. I checked the code again for another hour and noticed that you commented out the:
    # I don't know where you want this, but putting it # in the png doesn't seem to work :-P #print $q->header( -type => "image/png", -expires => "-1d" );
    When I uncommented it, it worked fine! What was your reasoning as to why this is not needed? When I initially started this project, I took the bare sample from the CGI programming book (mouse book). It had that line of code in there so I just left it there.
    Slowly but surely, I'll get down Perl like the rest of you cool cats! Thank you everyone who contributed. I've gain tons of wisdom from your help. :)
    I'm always learning. http://www.zen-designs.com
      Hi,

      I think I was misinterpreting what was to be returned by your code. I assumed it was to be a bare png file, and by examining an example of my own determined that the header was not needed. If this code snippet is used in the shell, you get just the png file. I must confess that I have no experience with CGI, and did not spot that the header might be required. Ah well, glad I could help anyway :-)

      Tim

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://152788]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (10)
As of 2014-11-21 02:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (104 votes), past polls