Perl 读入文件(一)

有一个SQL Server的环境配置文件如下,该脚本将配置环境的参数和值读入perl哈希串,然后在perl内可以做各种处理,当然本例中只打印参数和值。

 

==配置文件 Env_Var.txt==
SERVER = GDCPW1169
INSTANCE = GDCPW1169
SQL_VER = 2005
BIN_DIR = G:/mssql2005/MSSQL.1/MSSQL/Binn
SCRIPT_LOG = G:/mssql2005/log
DATA_FILE_LOCATION = I:/INTEL_DATA
LOG_FILE_LOCATION = J:/INTEL_LOG
DUMP_DIR = H:/INTEL_DB_DUMPS/GDCPW1169
TRAN_DIR = H:/INTEL_TRAN_DUMPS/GDCPW1169
AUDIT_ARCHIVE_DIR = H:/INTEL_DB_DUMPS/GDCPW1169/AUDIT_ARCHIVE

 

==perl脚本file_input3.pl==
#!/usr/bin/perl -w
#
# file_input3.pl
# Handle input from a file
use strict;

my ($file_name,
 $arg,
 $line,
 $key,
 $value,
 @array1,
 %hash);

$arg = shift(@ARGV);

while ($arg)
{
 if ($arg eq "-f" or $arg eq "-F")
 {
  $file_name = shift(@ARGV);
 }
 $arg = shift(@ARGV);
}

open my $FILE,'<',"$file_name" or die "Cannot open $file_name: $!";

foreach $line (<$FILE>){
  $line =~ s/^/s*|/s*$//g;   #删除前后空格
  @array1=split(/=/,$line);   #将等号作为数组的分隔符
  $array1[0] =~ s/^/s*|/s*$//g;
  $array1[1] =~ s/^/s*|/s*$//g;
  $hash{$array1[0]} = $array1[1]; #给哈希串赋值

close $FILE;

while (($key,$value) =each %hash){
 print "$key => $value/n";
}


==执行结果==
C:/temp1>perl file_input3.pl -f Env_Var.txt
DATA_FILE_LOCATION => I:/INTEL_DATA
AUDIT_ARCHIVE_DIR => H:/INTEL_DB_DUMPS/GDCPW1169/AUDIT_ARCHIVE
BIN_DIR => G:/mssql2005/MSSQL.1/MSSQL/Binn
TRAN_DIR => H:/INTEL_TRAN_DUMPS/GDCPW1169
DUMP_DIR => H:/INTEL_DB_DUMPS/GDCPW1169
INSTANCE => GDCPW1169
LOG_FILE_LOCATION => J:/INTEL_LOG
SERVER => GDCPW1169
SCRIPT_LOG => G:/mssql2005/log
SQL_VER => 2005

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值