Hi, I hope this is simple, as i am very new to perl.
I am trying to use pattern matchinig to create many srcipts from a template file which i have read into a list then print out to files. the problem is the patter match only matches on the first 2 successful matches after that it keeps the valuse found in those first 2 successes and writes them out after that the sub below is called in a for loop which pulls out some new data to fill the args Thanks Jim the lines im trying to match are #! DATASET="C:\jim\MinePlan\StratMinePlan\Data_In\2007\2 year detailed stage plan\DGN_IN.dgn" DEFAULT_MACRO SourceDataset_IGDS_1 C:\jim\MinePlan\StratMinePlan\Data_In\2007\2 year detailed stage plan\DGN_IN.dgn #! DATASET="C:\jim\MinePlan\StratMinePlan\Data_In\2007\2 year detailed stage plan\CSVOUT" DEFAULT_MACRO DestDataset_CSV_1 C:\jim\MinePlan\StratMinePlan\Data_In\2007\2 year detailed stage plan\CSVOUT #! DATASET="C:\jim\MinePlan\StratMinePlan\Data_In\2007\2 year detailed stage plan\DESTDIR" DEFAULT_MACRO DestDataset_MAPINFO_1 C:\jim\MinePlan\StratMinePlan\Data_In\2007\2 year detailed stage plan\DESTDIR as i said the first file out is written with the bits filled in correctly ... but only the first :( sub mk_fme_from_template { my $data_class = shift; my $dgn_fname = shift; my $prediction_year = shift; my $dgn_src_dir = shift; my $mapinfo_dest_dir = shift; my $mapinfo_text_dir = shift; my $i = 0; # search patterns my $search_dgn_in = "DGN_IN"; my $search_dest_dir = "DESTDIR"; my $search_csv_out = "CSVOUT"; my $prepend; my $curr_yr_pred = $current_year . "_" . $data_class . "_" . $prediction_year; foreach my $line (@fme_template_file) { if ($line =~ m/$search_dgn_in/g) { if ($line =~ m/DEFAULT_MACRO/g) { $prepend = "DEFAULT_MACRO SourceDataset_IGDS_1 "; } else { $prepend = "#! DATASET=\""; } $line = "$prepend$dgn_src_dir\\$dgn_fname\n"; $dgn_in = 1; } if ($line =~ m/$search_dest_dir/) { if ($line =~ m/DATASET/) { $prepend = "#! DATASET=\""; } else { $prepend = "DEFAULT_MACRO DestDataset_MAPINFO "; } $line = $prepend . $mapinfo_dest_dir . "\"\n"; } if ($line =~ m/$search_csv_out/) { if ($line =~ m/DATASET/) { $prepend = "#! DATASET=\""; } else { $prepend = "DEFAULT_MACRO DestDataset_CSV_1 "; } $line = $prepend . $mapinfo_text_dir . "\\" . $prediction_year . ".csv\"\n"; } $fme_output_script[$i++] = $line; } write_fme_file($data_class, $prediction_year); } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/