高分求Perl写:读取文件,按要求输入到新生成的文件里.
刚入手perl,这个急着要。有高手能帮忙写一下嘛?从头到尾完整的。原文件a=max_number;q1=ubase{a};q2=ubase{100};生成一个新文件为a=...
刚入手perl,这个急着要。有高手能帮忙写一下嘛?从头到尾完整的。
原文件
a=max_number;
q1=ubase{a};
q2=ubase{100};
生成一个新文件为
a=max_number;
Uvars{1}=ubase{a};
Uvars{2}=ubase{100};
q1=Uvars{1};
q2=Uvars{2};
我自己网上查半天写了一段
有如下问题:
1. open FILE 我在调用的时候怎么能让这个程序知道我想处理的文件是test.m
想生成的新文件是test_new.m呢?
2 ,我每次读到一行有ubase 的,都需要输出一个Uvars{i} ,i从1 逐次递加 。但是我不能够定义constant i=1 然后再 i++; 这该怎么办呢?
3.我没运行成功过语法不知有没有问题。
#/usr/bin/perl
open FILE, "$file" or die "$file: $!";
#print scalar <FILE>; #read one line
open (OUTFILE,">>./outfile");
while ( <FILE>)
{
if (/ubase/)#include keyword
{
$1=~/ubase$/ ; #找到以ubase 为结尾的字符串
$2=~/^ubase/; #找到以ubase 为开头的字符串
print OUTFILE "Uvar{i}=ubase", $2,\n;
print OUTFILE $1 ,"=Uvar{i}",\n;
}
else{
print OUTFILE ; }
}
close FILE;
close OUTFILE ; 展开
原文件
a=max_number;
q1=ubase{a};
q2=ubase{100};
生成一个新文件为
a=max_number;
Uvars{1}=ubase{a};
Uvars{2}=ubase{100};
q1=Uvars{1};
q2=Uvars{2};
我自己网上查半天写了一段
有如下问题:
1. open FILE 我在调用的时候怎么能让这个程序知道我想处理的文件是test.m
想生成的新文件是test_new.m呢?
2 ,我每次读到一行有ubase 的,都需要输出一个Uvars{i} ,i从1 逐次递加 。但是我不能够定义constant i=1 然后再 i++; 这该怎么办呢?
3.我没运行成功过语法不知有没有问题。
#/usr/bin/perl
open FILE, "$file" or die "$file: $!";
#print scalar <FILE>; #read one line
open (OUTFILE,">>./outfile");
while ( <FILE>)
{
if (/ubase/)#include keyword
{
$1=~/ubase$/ ; #找到以ubase 为结尾的字符串
$2=~/^ubase/; #找到以ubase 为开头的字符串
print OUTFILE "Uvar{i}=ubase", $2,\n;
print OUTFILE $1 ,"=Uvar{i}",\n;
}
else{
print OUTFILE ; }
}
close FILE;
close OUTFILE ; 展开
2个回答
展开全部
请详细描述一下你的问题吧。你是指A文件中,的格式是第一个,然后转换成B文件的格式是下面那样子吗?
还是A文件是配置,需要读取到某些变量里面?又或者其他意思?最好是能举证一个例子,运行前后的。
还是A文件是配置,需要读取到某些变量里面?又或者其他意思?最好是能举证一个例子,运行前后的。
更多追问追答
追问
我现在有个名称为 test.m 的文件,里面的内容为上面的
我需要写一个perl 程序
生成一个新的文件 test_new.m
其内容为下面的。
追答
问题就是我没有理解这两个文件的联系在哪里,
是指:等号左边的用hash形式的变量替换,然后右边保持不变?那么为什么a又没有替换呢?
q1和q2被替换的依据是什么呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询