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/ > > >