飛田先生からの挑戦状「特定条件の文字列を抜き取ってカンマ(,)と改行で区切ったテキストファイルを出力するソース」

[問題]

以下の文字列を「リンク先のURL」と「タグ内の文字列」だけ抜き取って、 カンマ(,)と改行で区切ったテキストファイルを出力するプログラムを書け。

<ul>
  <li href="http://www.fezero.jp/">FEZ公式</li>
  <li href="http://fewiki.jp/">FEZwiki</li>
  <li href="http://www38.atwiki.jp/hisouten/">東方緋想天wiki</li>
  <li href="http://www.kent-web.com/perl/">Perl入門</li>
  <li href="http://www.hatena.ne.jp/">はてな</li>
  <li href="http://www.google.co.jp/">google</li>
</ul>

gerocchoの答え -Perlにて-

問題の文字列が"que3.txt"にあるとして。"que3a.txt"を作成(or上書き)し処理後の文字列を書き込む。

use strict;
use warnings;

open(IN,"que3.txt");
my @array = <IN>;
close(IN); 


my @list;
foreach ( @array ) {
	my $a = index ( $_ , "http:/" );
	if ( $a > -1 ) {
		my $b = index ( $_ , "<" , $a );
		my $word = substr ( $_ , $a , $b - $a );
		push ( @list , $word );
	}
}

my %http;
foreach ( @list ) {
	my @array = split ( '">' , $_  );
	$http { $array[0] } = $array[1];
}

my $key;
my $val;
open (OUT, "> que3a.txt");
while ( ( $key , $val ) = each ( %http ) ) {
       print OUT "$key , $val\n";
} 
close (OUT );

これだとハッシュ変数のeachのおかげで順番が不定になりますね…