1.写脚本经常会遇到把生成的文件放到指定的目录
2.直接调用外部shell mkdir比较方便
3.使用mkdir前先判断下该目录是否存在,以免反复运行脚本每次因为目录存在而报warning
4.下面代码是生成10000个随机 mem data base。
#! /usr/bin/perl
use 5.010;
use strict;
for (my $num=0;$num<10000;$num++){
my $dir = "/proj/../perl/generate_mem/mem/mem$num";
if(not -e "$dir"){
`mkdir $dir -p`;
}
open my $csih_iwl0_fh,'>',"$dir/csih_iwl0.dat";
for(my $m=0;$m<=31;$m++){
my $csih_iwl_line;
for(my $i=0;$i<=5;$i++){
my $csih_iwl0 = int(rand(2));
$csih_iwl_line .= $csih_iwl0;
if ($i==5){
print $csih_iwl0_fh "$csih_iwl_line\n";
$csih_iwl_line = ();
}
}
}
close $csih_iwl0_fh;
open my $csih_iwl1_fh,'>',"$dir/csih_iwl1.dat";
for(my $m=0;$m<=31;$m++){
my $csih_iwl_line;
for(my $i=0;$i<=5;$i++){
my $csih_iwl1 = int(rand(2));
$csih_iwl_line .= $csih_iwl1;
if ($i==5){
print $csih_iwl1_fh "$csih_iwl_line\n";
$csih_iwl_line = ();
}
}
}
close $csih_iwl1_fh;
open my $csih_mem_fh,'>',"$dir/csi_h_mem.dat";
for(my $m=0;$m<400;$m++){
my $csih_mem_line;
for(my $i=0;$i<40;$i++){
my $csih_mem = int(rand(2));
$csih_mem_line .= $csih_mem;
if ($i==39){
print $csih_mem_fh "$csih_mem_line\n";
$csih_mem_line = ();
}
}
}
close $csih_mem_fh;
open my $csiw_mem_fh,'>',"$dir/csi_w_mem.dat";
for(my $m=0;$m<100;$m++){
my $csiw_mem_line;
for(my $i=0;$i<18;$i++){
my $csiw_mem = int(rand(2));
$csiw_mem_line .= $csiw_mem;
if ($i==17){
print $csiw_mem_fh "$csiw_mem_line\n";
$csiw_mem_line = ();
}
}
}
close $csiw_mem_fh;
}