【perl】split関数・foreach〜配列の要素を切り分けてhtmlで表にして表示してみる〜

#! usr/bin/perl

use strict;
use warnings;

#◎配列の要素を切り分けて.htmlで表にして表示する。

my @info = (
	'kogematsu1@ko.com:koge matsu:11', #アドレスの「@」が展開されないように「''」を使用
	'bokematsu2@bo.com:boke matsu:22',
	'hagematsu3@ha.com:hage matsu:33'
);

print "<html><table border=\"1\">\n";

foreach my $item (@info){
	my ($info_1,$info_2,$info_3) = split (/:/,$item);
	print "<tr><td>".join("</td><td>",$info_1,$info_2,$info_3)."</td></tr>\n";
};

print "</table></html>\n";


#別解:foreachを使わずに書いてみた(結構大変)
=head
#@「:」で@infoを切り分ける
my ($info_k1,$info_k2,$info_k3) = split (/:/,$info[0]);
my ($info_b1,$info_b2,$info_b3) = split (/:/,$info[1]);
my ($info_h1,$info_h2,$info_h3) = split (/:/,$info[2]);

#以下、htmlで表示される部分
print "<html><table border=\"1\">\n";

#ヒアドキュメントを使用
print <<"EOD";
<tr><td>$info_k1</td><td>$info_k2</td><td>$info_k3</td></tr>
<tr><td>$info_b1</td><td>$info_b2</td><td>$info_b3</td></tr>
<tr><td>$info_h1</td><td>$info_h2</td><td>$info_h3</td></tr>
EOD

print "</table></html>\n";
=cut

あとは、コマンドプロンプトでこの.plを実行して.htmlを生成。生成した.htmlを実行すると表ができる。