>>523
1. list.txt が開けなかったときの処理が欲しい。
2. $iの存在意義が乏しい

my $Imo_PATH = '/home/なんたら/かんたら'; # 先頭にまとめておこう♪
my $TMP_list = "$Imo_PATH/list.txt"; # 先頭にまとめておこう♪

my $Filehandle; # おそらく汎用的な使い回し変数になるのでグローバルスコープにしても桶
#our $Filehandle; # グローバルと判るように頭文字を大文字に

open $Filehandle,'<',$TMP_list or remake_list; # 再生する処理とかを与える
chomp(my @tmp = <$Filehandle>);
close($Filehandle);

unless(@tmp) {remake_list} # 空っぽの時は?

my %list;
for(@tmp){
next if index $_,'#' == 0 or not $_; # 正規表現でなくても桶/$_が未定義値となる時はないとおもう。
@lines = split /\s+/,,2; # インプリシットなので$_が対象となる/必要な要素は2なので指定する/ただし、コメントなどに空白文字が使えなくなるので要注意

=pod comment 三項演算子の時(こちらの方が重たいかも?)

$list{$lines[0]} = $lines[1]
? $lines[1]
: $lines[0]

=cut

$list{$lines[0]} = $lines[1]; # とりあえず放り込んで・・・
$list{$lines[0]} = $lines[0] unless $lines[1]; # 空っぽなら上書き
}

# こう書くとワケ判らなくなる♪
my %list = map +( $_->[0], $_->[1] ), map { [split /\s+/,,2]; $_->[0] = $_->[1] unless $_->[1] } grep index $_,'#' == 0 or not $_, @tmp;