【发布时间】:2014-09-17 16:15:37
【问题描述】:
下面的脚本列出了解析配置文件中的所有作业,并仅取出 运行作业的可执行文件 - perl 或 shell 脚本。然后它打开 可执行文件,并逐行遍历它并取出它读取的文件路径 in 及其输出的路径。
#!/usr/bin/perl
use strict;
use warnings;
open my $fh_rmancfg, '<', "/data/autosys-us.cfg"
or die "can't open file $!" ;
while ( my $cfg_line = <$fh_rmancfg>) {
if ($cfg_line =~ /executable/) {
my $cut_cfg_line = substr "$cfg_line", 13 ;
if ($cut_cfg_line =~ /(\/\S*\.(sh|pl|ksh))/) {
chomp($cut_cfg_line);
open my $fh_cut_cfg, '<', $cut_cfg_line
or warn qq{Can't open file "$cut_cfg_line" : $! } ;
while (my $path = <$fh_cut_cfg>) {
if ($path =~ /(\"\/\S*)\"/) {
print "$cut_cfg_line ---> $path";
}
}
}
}
}
这很好用,除非我将这些值泵入哈希 键被覆盖 - 请注意,有时一个键有一个值, 有时一个键有零个或多个值。
program_1 --> filepath_one
program_1 --> filepath_two
program_1 --> filepath_three
program_2 --> filepath_one
program_2 --> filepath_two
program_2 --> filepath_three
program_2 --> filepath_four
program_3 --> filepath_one
program_4 --> filepath_one
program_4 --> filepath_one
program_4 --> filepath_two
program_5 --> filepath_one
program_5 --> filepath_two
program_5 --> filepath_thee
program_5 --> filepath_four
program_5 --> filepath_five
program_5 --> filepath_six
program_5 --> filepath_seven
program_5 --> filepath_eight
我需要一个可以输入唯一键的数据结构 但有很多价值。我想弄清楚这是什么 结构是以及如何将值放入结构中。
program_1 --> filepath_one
--> filepath_two
--> filepath_three
program_2 --> filepath_one
--> filepath_two
--> filepath_three
--> filepath_four
program_3 --> filepath_one
program_4 --> filepath_one
--> filepath_one
--> filepath_two
program_5 --> filepath_one
--> filepath_two
--> filepath_thee
--> filepath_four
--> filepath_five
--> filepath_six
--> filepath_seven
--> filepath_eight
【问题讨论】:
-
使用数组的哈希值,你的键是
program_x,数组是文件路径。