Please don't cross post...

> 
> The code:
> sub mkrelease_dot_h{
> $devlabel = shift (@_);
> $file = shift (@_);

Why are these not lexically scoped (my'd)? 

> my ($major,$minor,$patch,$build) = ExtractRelease($devlabel);
> my ($month,$day,$year) = GetCurrentDate();
> chomp($year);
>  
> open(RELFILE,"$file") || die ("error opening file \"$file\"");

You are opening the above file for reading. To change a file you have to
open it for writing.

perldoc -f open
perldoc perlopentut

> $string = "\"$major.$minor.$patch.$build\"";
> while (<RELFILE>) { 
> 
> chomp($_);
> $_=~ s/(#define SW_VERSION_MAJOR)(.*)/$1\t$major/;
> $_=~ s/(#define SW_VERSION_MINOR)(.*)/$1\t$minor/;
> $_=~ s/(#define SW_VERSION_PATCH)(.*)/$1\t$patch/;
> $_=~ s/(#define SW_VERSION_BUILD)(.*)/$1\t$build/;
> $_=~ s/(#define SW_VERSION_STR)(.*)/$1\t$string/;
> $_=~ s/(#define SW_RELEASE_MONTH)(.*)/$1\t$month/;
> $_=~ s/(#define SW_RELEASE_DAY)(.*)/$1\t\t$day/;
> $_=~ s/(#define SW_RELEASE_YEAR)(.*)/$1\t\t$year/; 

This just changes the local $_ variable, it doesn't do anything to the
file once that line is read in.  You will have to 'print' the line back
into the file, don't forget to tack your new line back on since you have
chomped it.

> }
> 
> close (RELFILE);
> return $file;
> }
>  
> The question:
>  
> Why this code does not change the content of file $file ?
>  

HTH,

http://danconia.org

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to