extra characters return plus 0 in script
I'm getting confused - I have the following script open(DESK,"gtkdoclist") or die "cant open"; @desk1=; foreach $desk1 (@desk1){ chomp $desk1; print "$desk1\n"; $gtkdoc1=system("grep -h gtk_doc_min_version= $desk1"); chomp $desk1; print "$gtkdoc1"; however the output is this (notice the zeros at the start of line) atk/configure.in gtk_doc_min_version=0.6 0atk/configure gtk_doc_min_version=0.6 0at-spi/configure.in gtk_doc_min_version=0.6 0at-spi/configure gtk_doc_min_version=0.6 0bonobo-activation/configure.in gtk_doc_min_version=0.6 the source file looks like this atk/configure.in atk/configure at-spi/configure.in at-spi/configure bonobo-activation/configure.in bonobo-activation/configure As you can see there are extraneous returns and zeros - anyone any idea where they are coming from? -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: extra characters return plus 0 in script
Mike wrote: > > I'm getting confused - I have the following script > > open(DESK,"gtkdoclist") or die "cant open"; > @desk1=; > foreach $desk1 (@desk1){ > chomp $desk1; > print "$desk1\n"; > $gtkdoc1=system("grep -h gtk_doc_min_version= $desk1"); > chomp $desk1; > print "$gtkdoc1"; > > however the output is this > (notice the zeros at the start of line) > atk/configure.in > gtk_doc_min_version=0.6 > 0atk/configure > gtk_doc_min_version=0.6 > 0at-spi/configure.in > gtk_doc_min_version=0.6 > 0at-spi/configure > gtk_doc_min_version=0.6 > 0bonobo-activation/configure.in > gtk_doc_min_version=0.6 > > the source file looks like this > > atk/configure.in > atk/configure > at-spi/configure.in > at-spi/configure > bonobo-activation/configure.in > bonobo-activation/configure > > As you can see there are extraneous returns and zeros - anyone any idea > where they are coming from? Yes, system() returns the exit code of the command you are running. You are assigning this to a variable and then printing it out. my $file = 'gtkdoclist'; open DESK, $file or die "Cannot open $file: $!"; while ( my $desk = ) { chomp $desk; print "$desk\n"; if ( open GTKDOC, $desk ) { print grep /gtk_doc_min_version=/, ; } } John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: extra characters return plus 0 in script
On Fri, 2002-11-22 at 05:44, John W. Krahn wrote: > Mike wrote: > > > > I'm getting confused - I have the following script > > > > open(DESK,"gtkdoclist") or die "cant open"; > > @desk1=; > > foreach $desk1 (@desk1){ > > chomp $desk1; > > print "$desk1\n"; > > $gtkdoc1=system("grep -h gtk_doc_min_version= $desk1"); > > chomp $desk1; > > print "$gtkdoc1"; > > Solved the immediate problem but now from this script #!/usr/bin/perl -w open(DESK,"gtkdoclist") or die "cant open"; @desk1=; foreach $desk1 (@desk1){ print "$desk1"; $desk3=$desk1; $gtkdoc1=`grep gtk_doc_min_version= $desk1`; chop $gtkdoc1; chomp $gtkdoc1; chomp $gtkdoc1; print "$gtkdoc1\n"; @gtkdoc2=split /=/, $gtkdoc1; print "$gtkdoc2[1]\n"; $gtkdoc3=$gtkdoc2[1]; $mult='10'; $gtkdoc4=$gtkdoc3 * $mult;# this is the error print $gtkdoc3 $gtkdoc5=$gtkdoc1; gives the following error atk/configure.in gtk_doc_min_version=0.6 0.6 Filehandle main::0.6 never opened at ./gtkdocchk line 17, line 41. as you can see (0.6) my var for calculation seems in scope but calculation is not taking place > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: extra characters return plus 0 in script
Mike wrote: > > On Fri, 2002-11-22 at 05:44, John W. Krahn wrote: > > Mike wrote: > > > > > > I'm getting confused - I have the following script > > > > > > open(DESK,"gtkdoclist") or die "cant open"; > > > @desk1=; > > > foreach $desk1 (@desk1){ > > > chomp $desk1; > > > print "$desk1\n"; > > > $gtkdoc1=system("grep -h gtk_doc_min_version= $desk1"); > > > chomp $desk1; > > > print "$gtkdoc1"; Did you try the code that I posted here in my last reply? > Solved the immediate problem but now from this script > > #!/usr/bin/perl -w > open(DESK,"gtkdoclist") or die "cant open"; ^^ You should include the actual file name and the $! variable in the error message. > @desk1=; > foreach $desk1 (@desk1){ > print "$desk1"; ^ ^ The quotation marks are not required as the print function will convert everything it prints to a string. > $desk3=$desk1; > $gtkdoc1=`grep gtk_doc_min_version= $desk1`; Do you understand what the backticks do in a scalar context? > chop $gtkdoc1; > chomp $gtkdoc1; > chomp $gtkdoc1; Do you understand what chop() and chomp() do? > print "$gtkdoc1\n"; > @gtkdoc2=split /=/, $gtkdoc1; > print "$gtkdoc2[1]\n"; > $gtkdoc3=$gtkdoc2[1]; > $mult='10'; > $gtkdoc4=$gtkdoc3 * $mult;# this is the error > print $gtkdoc3 ^ The actual error is here. Something is missing. > $gtkdoc5=$gtkdoc1; > > gives the following error > > atk/configure.in > gtk_doc_min_version=0.6 > 0.6 > Filehandle main::0.6 never opened at ./gtkdocchk line 17, line > 41. > > as you can see (0.6) my var for calculation seems in scope but > calculation is not taking place That is because the result of the multiplication is stored in a different variable then the one you are printing. John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: extra characters return plus 0 in script
On Sat, 2002-11-23 at 04:50, John W. Krahn wrote: > Mike wrote: > > > > On Fri, 2002-11-22 at 05:44, John W. Krahn wrote: > > > Mike wrote: > > > > > > > > I'm getting confused - I have the following script > > > > > > > > open(DESK,"gtkdoclist") or die "cant open"; > > > > @desk1=; > > > > foreach $desk1 (@desk1){ > > > > chomp $desk1; > > > > print "$desk1\n"; > > > > $gtkdoc1=system("grep -h gtk_doc_min_version= $desk1"); > > > > chomp $desk1; > > > > print "$gtkdoc1"; > > Did you try the code that I posted here in my last reply? I modified my code to use backticks, when the code worked up to that point - thanks. > > > Solved the immediate problem but now from this script > > > > #!/usr/bin/perl -w > > open(DESK,"gtkdoclist") or die "cant open"; > ^^ > You should include the actual file name and the $! variable in the error > message. > I know I should (and would if the file handle was not being opened - noting after this would work if it wasn't) > > @desk1=; > > foreach $desk1 (@desk1){ > > print "$desk1"; > ^ ^ > The quotation marks are not required as the print function will convert > everything it prints to a string. > > > > $desk3=$desk1; > > $gtkdoc1=`grep gtk_doc_min_version= $desk1`; > > Do you understand what the backticks do in a scalar context? > I think so - ie: feeding the result back to perl ($gtkdoc1 above) > > chop $gtkdoc1; > > chomp $gtkdoc1; > > chomp $gtkdoc1; > > Do you understand what chop() and chomp() do? > yep - just making sure > > print "$gtkdoc1\n"; > > @gtkdoc2=split /=/, $gtkdoc1; > > print "$gtkdoc2[1]\n"; > > $gtkdoc3=$gtkdoc2[1]; > > $mult='10'; > > $gtkdoc4=$gtkdoc3 * $mult;# this is the error > > print $gtkdoc3 > ^ > The actual error is here. Something is missing. > > > > $gtkdoc5=$gtkdoc1; > > > > gives the following error > > > > atk/configure.in > > gtk_doc_min_version=0.6 > > 0.6 > > Filehandle main::0.6 never opened at ./gtkdocchk line 17, line > > 41. > > > > as you can see (0.6) my var for calculation seems in scope but > > calculation is not taking place > > That is because the result of the multiplication is stored in a > different variable then the one you are printing. > sorry about the typo in the last print. I am still trying to work out where the error is coming from. more errors follow to show more of what seems to be happening glib/configure.in gtk_doc_min_version=0.6 0.6 Filehandle main::6 never opened at ./gtkdocchk line 17, line 41. glib/configure gtk_doc_min_version=0.6 0.6 Filehandle main::6 never opened at ./gtkdocchk line 17, line 41. gnome-panel/configure.in gtk_doc_min_version=0.9 0.9 Filehandle main::9 never opened at ./gtkdocchk line 17, line 41 The Filehandle main error seems to be referencing the first digit to the right of the decimal point As I understand it up to my problem is I split $gtkdoc1 - OK I print $gtkdoc2[1] - OK I assign this to $gtkdoc3 -Ok I print this to be sure (0.6 or 0.9 or 0.7 etc) -Ok then I try to assign to gtkdoc4 a multiplication of $gtkdoc3 * $mult, which is where it goes toes up > > John > -- > use Perl; > program > fulfillment > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]