#!/usr/bin/perl use File::Spec; use File::Find; use File::Path; use File::Glob; use File::stat; #use Time::Piece; #use Time::Seconds; $" = "\n"; # change list separator @PROJECT_LIST = (<device/device*/*.uvproj>, <host/host*/*.uvproj>); print "@PROJECT_LIST"; foreach (@PROJECT_LIST) { my $project_file = $_; my $backup_file = $project_file . ".bck"; rename $project_file, $backup_file or die "cannot rename $project_file to $backup_file"; open (fin, $backup_file) or die "Can't open $backup_file to read\n"; open (fout, ">$project_file") or die "Can't open $project_file to write\n"; my $target; while (<fin>) { s/(<TargetName>.+) /\1_/; # replace space by underscore in target name if found $target = $1 and print $target . "\n" if /<TargetName>(.+)</; my $keil_build = ".\\KeilBuild\\$target\\"; print "replace $2 by $keil_build\n--> $_\n" if s/(<OutputDirectory>)(.+)</\1$keil_build</ || s/(<ListingPath>)(.+)</\1$keil_build</; printf fout; } }