PERL 中的变量很灵活,它不像c/c ++/java对变量有严格的要求。PERL对变量的使用不必申明或者初始化,想用就用。但是这样不太严谨,代码看似很乱,不防仿照C、java风格来使用PERL的变量。可以对用到的变量在程序前先相识的申明,用my修饰。也可以不用。例如:
my $file_path="";
my $Oracle_databaseName="";
my %tableName;
my @array_column;
my @augment_attribute;
my @attribute;
my @uq_primary_index_or_pk=();
my @primary_index=();
my @unique_index=();
说明:字符用$标注,数组用@标注,字符串单双引号都可以。在PERL中注释是#。
获取文件:分文文件夹文件很单一文本文件。
A:文件夹文件获取。参考代码:
#---open I/P directory for reading DDL SQL
opendir(TEMP,$file_path) || die "can't open the file or no directory!\n";
说明:打开文件夹用OPENDIR关键字,两个参数,一个是缓存中缓存的路径,第二个是打开的文件夹路径,die是语法结构,对重大的错误做回应,后面跟回应的信息。
GREP是正则表达式的匹配,表示你要去除文件夹下的什么文件。i表示大小写忽略不计,后面就是缓存的文件夹路径。文件会以数组的形式返回。我们就可以循环的读取数组,提出想要的文件了。读取数组常用的代码:
@Files=grep/.sql$/i,readdir TEMP;
B:直接打开文件。参考代码:
open( PF, $ddl_file_path) or die "\"".$file_path."\": ".$!."\nUsage". $0 ."<DDL File>\n";
open (DDL, '>>oracle_ddl_and_data_import/oracleSource/ddl/Oracle_DDL.sql') or die "Cannot open file for writing\n$!\n";
说明:OPEN后的参数:第一个是打开路径问价下的缓存,第二个就是某个路径下的问价。$!返回的是该脚本的文件名,$0是文件的路径,由此可以看出,它是以正则表达式匹配的形式去查找的。后面一句是写入文件的代码,分为追加和替换。
C: 读取文本内容:
一行行的读取返回的内容。
Line:while(<PF>){············}