perl-embperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wschr...@schroedernet.net
Subject subroutine question
Date Tue, 27 Apr 2004 16:51:40 GMT
Hi All,
I have an web app that creates simple graphs. In one of the scripts I need
to sort the data returned from the DB query numerically. I have a sub for
this sort. I converted the script shown below from a regular cron job to
embperl so I know that the perl works.
The problem with the script below is that [ $ sub sortnum () $] prints on
the screen and the image never gets created.
The docs on
http://perl.apache.org/embperl/pod/doc/doc13/HTML/Embperl.-page-5-.htm
indicate that I have done it right.
I have another script that is very similar to this without the sorting and
it works just fine.
What did I get wrong in this script.
I am using embperl 1.36 on apache 1.3x
Thanks.
W










[- use GD::Graph::bars; -]
[- use Socket; -]
[- use CGI qw/:standard *table/; -]

[- $LanChoice = $fdat{LanChoice}; -]
[- chomp $LanChoice; -]
[- $HostChoice = $fdat{HostChoice} -]
[- chomp $HostChoice; -]
[- $Event = $fdat{Event} -]
[- chomp $Event; -]
[- $ShowMe = $fdat{ShowMe} -]
[- chomp $ShowMe; -]

[$ if $Event eq "Inbnd" $]
[- $TableName = "Inbnd" -]
[$ elsif $Event eq "Outbnd" $]
[- $TableName = "Outbnd" -]
[$ endif $]

[- $req = shift; -]

[- undef @x; -]
[- undef @y; -]

[- $sth = $req->{DBHandle}->prepare(qq{ select count(SRC_IP) as
Event_Count, DST_Port from
`${HostChoice}_${TableName}Wk$req->{weeknum}_$req->{year}` where Lan =
'External' and Event like 'Inbnd%' and Protocol != 'ICMP'  group by
`${HostChoice}_${TableName}Wk$req->{weeknum}_$req->{year}`.DST_Port }); -]
[- $sth -> execute; -]

[$ while ( $hash_ref = $sth->fetchrow_hashref) $]
[-   $events = $hash_ref->{Event_Count}; -]
[-   $ports = $hash_ref->{DST_Port}; -]
[-  push(@x, "$ports"); -]
[-  push(@y, "$events"); -]
[$ endwhile $]

[ $ sub sortnum () $]
[-  $a <=> $b; -]
[$ endsub $]

[-  @sortX = sort sortnum @x; -]
[-  @sortY = sort sortnum @y; -]

[- $y_max = int(($sortY[$#sortY] + 50)); -]
[- $y_tick = int(($sortY[$#sortY] / 10)); -]
[- $y_skip = int(($y_tick / 4 )); -]


[# make and save graph #]
[- $graph = GD::Graph::bars->new(850,400); -]
[- $x_ref = \@sortX; -]
[- $y_ref = \@sortY; -]
[- @data = ( $x_ref, $y_ref); -]

[- $graph->set(
      x_label=>'Port Number',
      y_label=>'Count',
      x_labels_vertical=>"1",
      title=>"Total Events per Port $req->{TimeNow}",
      y_max_value=>"$y_max",
      y_tick_number=>"$y_tick",
      y_label_skip=>"$y_skip" ); -]

[- $format = $graph->export_format; -]
[- open(IMG,">/usr/local/apache/htdocs/FW/img/EventDST.png"); -]
[- binmode IMG; -]
[- $pic = $graph->plot(\@data); -]
[- print IMG $pic->png; -]


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


Mime
View raw message