Hi guys!
Tnx for answering! Of course it was the /misplacing of the \ that caused my 
error;)
But after changing this error I still get an other error msg like this:

Invalid data set: 1 at ./bars.pl line 90, <FILE> line 1.

which is referring to this line in my script:

my $gd = $graph->plot(\...@array) or die $graph->error;

I'm not sure what this error means??

Xalekto



Den 7. apr. 2010 kl. 07.23 skrev Jins Thomas:

> 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