Hi alekto,

My guess

Main error is due to
my $gd = $graph->plot(/@array)  (Line 90) Did u meant \ (bless operator)
instead of / . Same is being repeated  in printHistogram(/@array

Also hope last } was for printHistogram subroutine was copy paste problem
while emailing. Other than that this looks fine.

Let me know you require some further help on this.


Cheers
Jins Thomas



On Wed, Apr 7, 2010 at 9:20 AM, alekto <alekto.antarct...@gmail.com> wrote:

> Hi,
> I got this scrip that is suppsed to use the use the Getopt::Std; and
> GD::Graph::bars; to input generate an array from a file (age).
> With this array, the GD::Graph::bars is going to create a subroutine
> printHistogram() which generates a png file based on a supplied array.
> The signature of the method could be like this:
> printHistogram(\...@histy,"$filename",$histmin,$histmax,"Title");
>
> I manage to generate the array from the input file, but it seems like there
> is something wrong with my subroutine at the end, I have been using the
> examples at cpan.org as an templat for this subroutine.
> Following is the error msg, as well as the complete script.
> Tnx!
>
>
> The ERROR msg:
>
> hostname$ ./bars.pl -f age
> ./bars.pl: line 5: use: command not found
> Array found where operator expected at ./bars.pl line 90, at end of line
>  (Might be a runaway multi-line // string starting on line 53)
>        (Missing operator before ?)
> Global symbol "$title" requires explicit package name at ./bars.pl line
> 53.
> Global symbol "$graph" requires explicit package name at ./bars.pl line
> 53.
> Global symbol "$graph" requires explicit package name at ./bars.pl line
> 53.
> Global symbol "$title" requires explicit package name at ./bars.pl line
> 53.
> Global symbol "$graph" requires explicit package name at ./bars.pl line
> 53.
> Global symbol "$gd" requires explicit package name at ./bars.pl line 53.
> Global symbol "$graph" requires explicit package name at ./bars.pl line
> 53.
> syntax error at ./bars.pl line 90, near "my $gd = $graph->plot(/@array"
> Global symbol "$graph" requires explicit package name at ./bars.pl line
> 90.
> Global symbol "$gd" requires explicit package name at ./bars.pl line 95.
> Unmatched right curly bracket at ./bars.pl line 97, at end of line
> ./bars.pl has too many errors.'
>
>
>
> #!/usr/bin/perl -w
>
> # Needed pkg
> use Getopt::Std;
> use strict;
> use warnings;
> use GD::Graph::bars;
>
> # Global variables
> my $VERBOSE = 0;
> my $DEBUG = 0;
>
> ################################################################
> # handle flags and
> # Example: c == "-c", c: == "-c argument"
> my $opt_string = 'hvdf:';
> getopts( "$opt_string", \my %opt ) or usage() and exit 1; # exit other than
> 0 = error!!
>
> # print help message if -h is invoked
> if ( $opt{'h'} ){
>        usage();
>        exit 0;
>    }
>
> $VERBOSE = 1 if $opt{'v'};
> $DEBUG = 1 if $opt{'d'};
> my $FILENAME = $opt{'f'};
>
> # main program content
>
> my $filename = $FILENAME;
> my $line;
> my @dataarray;
> my @array;
> my $counter;
> my $histmin;
> my $histmax;
>
> open (FILE, "$filename") or die ("ERROR: $!\n");
>
> while ($line = <FILE>){
>        debug($line);
>        chomp $line;
>        @array = split / /, $line;
>        @array = sort @array;
>        $histmin = $array[0];
>        $histmax = $array[-1];
>        $counter++;
>        }
> # print "$histmin\n$histmax\n";
> # print "min: $array[0]\nmax: $array[-1]\n";
> # print "@dataarray\n";
> printHistogram(/@array,$filename,$histmin,$histmax,'Age');
>
>
> ##########################################
> # Helper routines
>
> sub usage {
>        # print the correct use of this script
>          print "Usage:\n";
>          print "-h    Usage\n";
>          print "-v    Verbose\n";
>          print "-d    Debug\n";
>          print "-f    Filename\n";
>    }
>
> sub verbose {
>        print $_[0] if ( $VERBOSE or $DEBUG );
>    }
>
> sub debug {
>        print $_[0] if ( $DEBUG );
>    }
>
> sub printHistogram {
>    my (@array,$filename,$histmin,$histmax,$title) = @_;
>    my $graph = GD::Graph::bars->new(400, 300);
>
>    $graph->set(
>        x_label           => 'X Label',
>        y_label           => 'Y label',
>        title             => '$title',
>        y_max_value       => $histmax,
>        y_min_value       => $histmin,
>        y_tick_number     => 8,
>        y_label_skip      => 2
>    ) or die $graph->error;
>
>    my $gd = $graph->plot(/@array) or die $graph->error;
>
>
>    open(IMG, '>$filename.png') or die $!;
>    binmode IMG;
>    print IMG $gd->png;
>    close IMG;
>
>
> --
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
>
>
>

Reply via email to