extra characters return plus 0 in script

2002-11-21 Thread mike
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

2002-11-21 Thread John W. Krahn
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

2002-11-22 Thread mike
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

2002-11-22 Thread John W. Krahn
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

2002-11-22 Thread mike
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]