想象一个像下面这样的文本文件,其中 <some random text> 可以是任何东西或什么都没有,这意味着 KEYWORD 可以出现在行中的任何地方,单独或与其他文本一起出现:
1 <some random text>
2 <some random text>KEYWORD<some random text>
3 <some random text>KEYWORD<some random text>
4 <some random text>
5 <some random text>
6 <some random text>KEYWORD<some random text>
7 <some random text>
8 <some random text>KEYWORD<some random text>
9 <some random text>KEYWORD<some random text>
10 <some random text>KEYWORD<some random text>
11 <some random text>
12 <some random text>KEYWORD<some random text>
13 <some random text>KEYWORD<some random text>
14 …Run Code Online (Sandbox Code Playgroud) 我的程序处理两种风格的“某物”,每种风格都有自己的数据结构和程序来处理它们。用户使用以下任一或两者调用程序:
-f1 path_to_file_with_flavor_1_data-f2 path_to_file_with_flavor_2_data我的程序工作编码为:
GetOptions ('f1=s' => \$f1_path,
'f2=s' => \$f2_path,
);
if (defined $f1_path) {
subroutine_to_process_flavor_1_data( $f1_path );
}
if (defined $f2_path) {
subroutine_to_process_flavor_2_data( $f2_path );
}
Run Code Online (Sandbox Code Playgroud)
它有一个散列来存储两种口味的处理数据:
my %flv_hash = ( flavor_1 => { datahash => { ... },
},
flavor_2 => { datahash => { ... },
},
);
Run Code Online (Sandbox Code Playgroud)
我现在想将每个风味的变量和子程序名称添加到哈希中以使其:
my %flv_hash = ( flavor_1 => { datahash => { ... },
var_name => 'f1_path',
sub_name => 'subroutine_to_process_flavor_1_data',
},
flavor_2 => { datahash => { …Run Code Online (Sandbox Code Playgroud) perl ×2